起重和';让';在JavaScript中
问题是: 为什么这不会引发引用错误:起重和';让';在JavaScript中,javascript,scope,hoisting,Javascript,Scope,Hoisting,问题是: 为什么这不会引发引用错误: console.log(a) let a = 5; { console.log(a) let a = 5; } 但这会引发一个引用错误: console.log(a) let a = 5; { console.log(a) let a = 5; } 现在,如果我们使用'var',那么在这两种情况下,代码都将运行并注销'undefined',但是有人能解释一下'let'(和'const')发生了什么。如注释中所述,这两种情况都会引发引用错误
console.log(a)
let a = 5;
{
console.log(a)
let a = 5;
}
但这会引发一个引用错误:
console.log(a)
let a = 5;
{
console.log(a)
let a = 5;
}
现在,如果我们使用'var',那么在这两种情况下,代码都将运行并注销'undefined',但是有人能解释一下'let'(和'const')发生了什么。如注释中所述,这两种情况都会引发引用错误 控制台日志(a)
设a=5代码>都抛出一个引用错误。我在Node和Chrome的控制台中尝试了第一个代码,但都抛出了一个“ReferenceError”,我无法重现您描述的行为。您确定在显示测试代码之前,您的作用域中没有
a
的定义吗?@即使这样,它也会抛出。请注意您所写的内容:您的两个代码块完全相同。现在,你的问题是什么?我对你的答案投了赞成票,这是完全正确的,尽管毫无用处:这个问题本身显示出基本上不愿意参考现有的文档。