【发布时间】:2018-08-20 17:40:02
【问题描述】:
问题是:
为什么这不会引发引用错误:
console.log(a)
let a = 5;
但这会引发参考错误:
{
console.log(a)
let a = 5;
}
现在,如果我们使用“var”,那么在这两种情况下,代码都会运行并注销“未定义”,但有人可以解释一下“让”(和“常量”)发生了什么。
【问题讨论】:
-
两者都抛出引用错误。
-
我在 Node 和 Chrome 的控制台中尝试了第一个代码,都抛出了“ReferenceError”
-
我无法重现您描述的行为。您确定在您显示的测试代码之前,您还没有在范围内定义
a吗? -
@mark 即使那样它也会抛出。
-
注意你在写什么:你的两段代码是完全一样的。现在,你的问题是什么?
标签: javascript scope hoisting