【发布时间】:2019-10-24 13:10:12
【问题描述】:
下面的代码给出了undefined 的输出。我的印象是所有变量和函数声明都被提升到其作用域的顶部,因此b 现在应该在调用a() 之前位于作用域的顶部。但是,我仍然得到undefined 作为我的输出?
a()
var b = 5;
function a() {
console.log(b)
}
【问题讨论】:
-
声明被提升,而不是初始化
-
这里有一个很好的阅读说明为什么你会看到未定义:github.com/getify/You-Dont-Know-JS/blob/2nd-ed/scope-closures/…
标签: javascript hoisting