JavaScript · 单选题 · 第 15 题
前端与全栈开发面试 · 第 15 题
在 let 声明语句之前访问这个变量,会发生什么?
- A得到 undefined
- B得到 null
- C得到数字 0,不报错
- D抛出 ReferenceError
答案
D D. 抛出 ReferenceError
解析
let 和 const 也会提升,但从块开始到声明语句之间处于暂时性死区(TDZ),这时访问会抛出 ReferenceError。var 提升后被初始化为 undefined,所以提前访问得到 undefined。TDZ 让「先使用后声明」的错误能尽早暴露出来。