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,会报错。
时间: 2024-10-25 00:16:58