最近,我参加了一个前端开发的面试,面试官提出了一个问题,让我怀疑我对javascript的信心。问题是
function some() {
console.log(a) // undefined
console.log(b) // Reference Error: cannot access b before initialization.
var a = 10;
let b = 15
}我知道吊装是在这里发生的,但我不知道为什么b抛出引用错误。有人能解释一下吗?
发布于 2020-07-28 13:50:30
与使用var声明的变量不同,变量将以未定义的值开始,在计算变量定义之前,不初始化这些变量。在初始化之前访问变量将导致ReferenceError。从块开始到初始化处理,该变量处于“时间死区”中。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let
https://stackoverflow.com/questions/63135616
复制相似问题