javascript是没有块级作用域概念,如下
上面的运行结果是10,很显然i在整个function中都是有效的,但是可以通过改进来实现作用域的功能的,如下
上面虽然实现了功能,但看起来还是有点怪怪的,其实上面的代码相当于
function outPutNumber(count){
for(var i=0;i<count;i++){
}
alert(i);//10
}
outPutNumber(10);
上面的运行结果是10,很显然i在整个function中都是有效的,但是可以通过改进来实现作用域的功能的,如下
function outPutNumber2(count){
(function(){
for(var i=0;i<count;i++){
}
alert(i);//10
})();
alert(i);//报错
}
outPutNumber2(10);
上面虽然实现了功能,但看起来还是有点怪怪的,其实上面的代码相当于
function outPutNumber3(count){
var f=function(){
for(var i=0;i<count;i++){
}
}
f();
alert(i);//报错
}
outPutNumber3(10);