首页 > 解决方案 > 时间死区——什么时候结束?

问题描述

我想我刚刚开始理解时间死区的概念,所以我只是想确认一下我的思路是否正确,以及我对这个概念的理解是否正确。

因此,时间死区与 JavaScript 中的提升密切相关。与常见的误解相反,使用letand声明的变量const实际上就像var变量一样被提升到其作用域的顶部,但它们没有被初始化。因此,当我们在正式声明它们之前尝试访问它们时,就会出现 ReferenceError。根据我的理解,从let/变量被提升到正式声明const的这段时间是TDZ。

现在,我很困惑 TDZ 是在我们声明变量时结束,还是在我们初始化它时结束?它应该在根据我声明变量时结束,因为它的值是undefined并且不再有任何错误。这是更好地理解我在说什么的代码

console.log(someVariable); //ReferenceError

let someVariable;
console.log(someVariable) //undefined

如果我在任何地方错了,请纠正我。

标签: javascriptecmascript-6

解决方案


推荐阅读