嘿,大家好!今天咱们来聊聊JavaScript里一个听起来有点吓人,但其实挺有意思的概念:“Temporal Dead Zone”,简称TDZ,中文可以叫做“暂时性死区”。 啥是“暂时性死区”?听起来像恐怖片名儿,实际上它是跟let和const变量的生命周期息息相关的。搞懂了它,以后写代码就能少踩坑,避免一些莫名其妙的错误。 开场白:变量声明的那些事儿 要理解TDZ,首先得回顾一下JavaScript里变量声明的那些事儿。以前我们用var声明变量,那感觉就像进了自助餐厅,啥都能拿,啥都能用。var声明的变量会“变量提升”(hoisting),也就是在代码执行之前,JavaScript引擎会先把var声明的变量“提升”到作用域的顶部,但注意,仅仅是声明被提升了,赋值操作还在原地。 举个例子: console.log(x); // 输出 undefined,不会报错! var x = 10; 这段代码不会报错,因为var x被提升到顶部了,相当于: var x; // 声明提升 console.log(x); // x 此时是 undefined x = 10; // 赋值 所以,即使在声 …
继续阅读“JS `Temporal Dead Zone` (TDZ):理解 `let`/`const` 变量的生命周期”