Javascript变量提升为gobal范围

时间:2015-08-17 06:53:58

标签: javascript variables

有人可以解释为什么undefined被打印到控制台而不是4?

var a = 4;
function test() {
 if (!a) {
   a = 3;
 }
 console.log(a)
}
undefined

1 个答案:

答案 0 :(得分:1)

这与variable hoisting无关。

因为你没有return任何东西。因此,当您在浏览器控制台中执行此代码时,它会显示undefined

要获得4,您需要从该功能调用test函数和return a

代码:

var a = 4;

function test() {
    if (!a) {
        a = 3;
    }

    console.log(a);

    // Return a from the function, if needed
    return a;
}

// Call function here
test();