星海

JavaScript · 单选题 · 第 15 题

前端与全栈开发面试 · 第 15 题

在 let 声明语句之前访问这个变量,会发生什么?

  1. A得到 undefined
  2. B得到 null
  3. C得到数字 0,不报错
  4. D抛出 ReferenceError

答案

D D. 抛出 ReferenceError

解析

let 和 const 也会提升,但从块开始到声明语句之间处于暂时性死区(TDZ),这时访问会抛出 ReferenceError。var 提升后被初始化为 undefined,所以提前访问得到 undefined。TDZ 让「先使用后声明」的错误能尽早暴露出来。

在线刷这套题:即时判分、错题本、闪卡复习,不用登录就能练。