javascript - 时间死区——什么时候结束?
问题描述
我想我刚刚开始理解时间死区的概念,所以我只是想确认一下我的思路是否正确,以及我对这个概念的理解是否正确。
因此,时间死区与 JavaScript 中的提升密切相关。与常见的误解相反,使用let
and声明的变量const
实际上就像var
变量一样被提升到其作用域的顶部,但它们没有被初始化。因此,当我们在正式声明它们之前尝试访问它们时,就会出现 ReferenceError。根据我的理解,从let
/变量被提升到正式声明const
的这段时间是TDZ。
现在,我很困惑 TDZ 是在我们声明变量时结束,还是在我们初始化它时结束?它应该在根据我声明变量时结束,因为它的值是undefined并且不再有任何错误。这是更好地理解我在说什么的代码
console.log(someVariable); //ReferenceError
let someVariable;
console.log(someVariable) //undefined
如果我在任何地方错了,请纠正我。
解决方案
推荐阅读
- ruby-on-rails - Heroku 部署错误;预编译资产失败(注意 devise.rb 中的行)
- javascript - 如何读取 JSON 文件,这是我的版本,但不好
- python - 如何在一行中初始化多个字典,并使用键列表作为 Python 中的输入参数来初始化它们?
- c++ - 关于在 C++ 中动态创建的对象的问题
- reactjs - 如何在 React 中使用 Yield 关键字?
- r - 使用 alpha 使 geom_point 点颜色稍微变浅?
- python - ModuleNotFoundError:没有名为“googleapiclient”的模块
- python - Tkinter 我如何召唤分配给它们的不同命令的按钮
- javascript - 我如何获得每个滑块的价值;javascript只显示一个
- python - python代码在运行时不会打印任何东西