为什么会引发b的参考错误?

时间:2020-07-28 13:46:12

标签: javascript frontend referenceerror hoisting

最近我参加了有关Frontend开发的面试,面试官想到了一个问题,这使我怀疑我对javascript的信心。问题是

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

我知道这里正在发生吊装,但是我不确定为什么b会引发参考错误。有人可以解释吗?

1 个答案:

答案 0 :(得分:0)

与以var声明的变量(其值将以undefined开头)不同,let变量必须在对其定义求值后才进行初始化。在初始化之前访问变量会导致ReferenceError。该变量从程序段的开始一直处在“临时死区”中,直到初始化完成为止。

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

相关问题