5 作用域

Posted 一问一答

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 作用域的主要内容,如果未能解决你的问题,请参考以下文章

JS 作用域及作用域链

Python - 模块

作用域是什么?

JavaScript 作用域 与 作用域链

JS---闭包

你不知道的JS系列 ( 5 ) - 词法作用域