作用域变量 var

懵懂的女人 提交于 2019-11-26 16:04:55

var没有块级作用域,定义后在当前闭包中都可以访问,如果变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改。

变量名重复,就会覆盖前面定义的变量,并且也有可能被其他人更改:

console.log(a);

function  a() {
    console.log(1)
}
function  a() {
    console.log(2)
}

输出 :  2 

 

定义后在当前闭包中都可以访问

if (true) {
    var a = "a"; // 期望a是某一个值
}
console.log(a);

输出:   a

 

 

var在for循环标记变量共享,一般在循环中使用的i会被共享,其本质上也是由于没有块级作用域造成的

for (var i = 0; i < 10; i++) {
    setTimeout(function () {
        alert(i);
    }, 0);
}
弹窗 10 次

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!