为什么它会为 b 抛出引用错误?

Why does it throws reference error for b?

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

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

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

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

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