块级作用域
块级作用域是指在由花括号包裹的代码块中的作用域。在JavaScript中是没有块作用域的。为了理解这个概念,来看下面的例子:
for
(
var
i = 0;i < 10; i++){
......
}
alert(i);
//结果会输出10
|
上面的代码中,我们在for
循环中定义了变量i
,在C++和Java等编程语言中,循环执行结束之后,for
循环中的i
变量会立刻被垃圾回收。但是在JavaScript中,不管是使用循环或某些判断之后,变量会一直存在。我们可以从打印结果中看到,for
循环结束之后打印出的值是10。
当在全局环境中使用某个变量进行循环或判断之后,这个变量可能会影响到函数中的变量,所以在非特殊情况下不要使用全局变量,而且全局变量在作用域链的最上层,访问是最慢的。
解决块作用域的方法是使用匿名函数。来看下面的代码。
(
function
(){
for
(
var
i = 0; i < 10; i++){
|