js里面没有块级作用域,例如:
for(var i=0; i<5; i++){
alert(i);
}
像这样一个简单的for循环,在Java、C#等高级语言里面i只能在循环体里面使用,循环外面是不能调用的,
但是在js里面,从i有了定义开始,就可以在函数后面的代码中随便调用。就像上面的循环外面再加一句
alert(i);打出的结果就是5;
该如何避免这种情况的出现呢,使用私有作用域:
(function(){
//这里是块级作用域(私有作用域)
})();
记住一定要给function加上括号,不加是会出错的。
因为不加括号,js将function当做关键字声明函数,而声明函数结尾是不能有括号的。
本文深入探讨了JavaScript中作用域的概念,特别指出与Java、C#等语言的区别,并介绍如何通过使用私有作用域来避免全局变量的误用,提升代码的清晰性和安全性。
490

被折叠的 条评论
为什么被折叠?



