javascript为全局变量提升

时间:2014-11-05 09:06:12

标签: javascript global-variables scope hoisting

我想知道javascript hoisting如何适用于全局变量。

假设我有以下代码段:

var a = 5;
function print(){
    console.warn("a",a,b);
    var a = 10;
    b=5;
    console.warn("a",a);
}
print();

在这种情况下,我收到错误“b未定义”。我想知道为什么Javascript提升不适用于全局变量。我试图寻找这个,但只得到变量提升的结果。有什么想法??

1 个答案:

答案 0 :(得分:3)

var语句被悬挂。函数声明已被提升。分配不会被提升(如果您将var语句与分配(var foo = 1)组合在一起,则声明部分将被提升,但分配不是。)