注意JavaScript没有块级作用域

2017-11-17  本文已影响0人  Wonder233

例如:

if(true){
    var color = "blue";
}
console.log(color);

这里会在控制台输出“blue”。
如果在C、C++或Java中,color会在if语句执行完毕之后被销毁。
但是在JavaScript中,这个if语句在全局环境中,那么通过var声明的变量也会加到当前的执行环节(即全局环境)中。
还需要注意的是:

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

这里在for中初始化了变量i,在for循环执行结束后,变量i也依旧会存在于循环外部的执行环境中。

上一篇 下一篇

猜你喜欢

热点阅读