什么是“暂时性死区”(TDZ)?let/const 变量提升的底层机制

深入理解 JavaScript 中的“暂时性死区”(TDZ)与 let/const 的变量提升机制 各位开发者朋友,大家好!今天我们来深入探讨一个在现代 JavaScript 开发中非常关键但又容易被忽视的概念——暂时性死区(Temporal Dead Zone,简称 TDZ)。这个概念不仅影响你对代码执行顺序的理解,还直接关系到你在使用 let 和 const 声明变量时可能遇到的错误。 如果你曾经在控制台看到过这样的报错: console.log(a); // ReferenceError: Cannot access ‘a’ before initialization let a = 10; 那么恭喜你,你已经踩到了 TDZ 的坑。接下来,我会从底层原理出发,带你一步步揭开 let 和 const 的变量提升机制,让你真正理解为什么会出现这种现象,以及如何避免它。 一、什么是“暂时性死区”(TDZ)? 定义 暂时性死区(Temporal Dead Zone, TDZ) 是指:在 let 或 const 声明语句之前访问该变量的行为,会导致 ReferenceError。这是 EC …