首页 > 代码库 > 5 作用域

5 作用域

1 变量的作用域

通俗的理解,可以理解为变量的有效领域,也可以理解为C++,java中的局部变量和全局变量。

var scope = "global";
function checkscope(){
    var scope = "local";
    return scope;
}
checkscope();

上述程序中,首先定义了一个全局变量scope,该变量在整个全局中都是有效的,在函数checkscope内部也能访问,同时,函数函数checkscope内部也定义了一个变量scope,该变量的作用域只存在于函数checkscope中,只能在函数checkscope中进行访问。如果函数checkscope中没有定义scope局部变量,那么返回的scope的值是global,但局部变量优先级是大于全局变量的,所以返回的值是local。

 

2 块级作用域

for(var i = 0; i < 10; i++){
    doSomething(i);
}
alert(i);

如果在java中,for运行完后,会摧毁i,但JavaScript不会,如果想for运行完后,摧毁i,可以用es6语法中的let,如下:

for(let i = 0; i < 10; i++){
    doSomething(i);
}
alert(i);

此时,在for循环外访问i,会报错。

 

5 作用域