【问题标题】:Why does it throws reference error for b? [duplicate]为什么它会为 b 引发参考错误? [复制]
【发布时间】:2020-07-28 13:46:12
【问题描述】:

最近我参加了前端开发的面试,面试官提出了一个问题,让我怀疑我对javascript的信心。问题是

   function some() {
       console.log(a) // undefined
       console.log(b) // Reference Error: cannot access b before initialization.
       var a = 10;
       let b = 15
   }

我知道这里发生了提升,但我不确定为什么 b 会抛出引用错误。谁能解释一下?

【问题讨论】:

标签: javascript frontend referenceerror hoisting


【解决方案1】:

与用 var 声明的变量不同,它以 undefined 值开头,让变量在其定义被评估之前不会被初始化。在初始化之前访问变量会导致 ReferenceError。从块开始到处理初始化,变量处于“临时死区”中。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/let

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-15
    • 2013-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多