开发者社区 问答 正文

在局部作用域内对全局变量重新赋值会不会影响到全局作用域?

var a=1;
function f(){
    a=2;
}
f();
console.log(a);  //a=2;
function f(){
    var a=1;
    if(a){
        a=2;
    }
}
f();
console.log(a);  //undefined
function foo() {
    var x = 1;
    if (x) {
        (function () {
            var x = 2;
        }());
    }
    console.log(x);// 为啥x还是=1
} 

展开
收起
a123456678 2016-03-11 17:58:52 1892 分享 版权
1 条回答
写回答
取消 提交回答
  • 来咱们把你的第三段代码改一下,

    function foo() {
        var x = 1;
        if (x) {
            (function () {
                x = 2;
            }());
        }
        console.log(x);// 试试还是1么
    } 
    2019-07-17 18:59:47
    赞同 展开评论
问答地址: