Javascript 时间死区

标签 javascript scope hoisting

我不太明白下面的代码片段发生了什么。

由于暂时死区,我预计会出现错误,但它看起来像 const baz = '123123';被吊起。

一切正常的原因是什么?

class Foo {
  constructor() { 
    console.log('Foo baz is:', baz) 
  }
}

function log() {
  console.log('log baz is:', baz);
}

const baz = '123123';

log();
new Foo();

最佳答案

不需要吊装。

函数在被调用之前不会尝试访问变量。

只有在定义常量并为其分配值之后才能调用它们。

关于Javascript 时间死区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47634568/

相关文章:

javascript - 是否建议在 .each() 中放置一个函数?

Javascript 闭包和内部作用域

JavaScript 变量提升

javascript - 与函数相比,为什么提升在变量中的工作方式不同?

javascript - 浏览器扩展程序,以替换实时站点上的JavaScript文件以进行测试

javascript - 在 Vue 组件中将逻辑从指令转移到方法

javascript - 如何在javascript中用 ""(空格)替换字符串中长度小于3的所有单词?

javascript - 使用全局变量来防止代码不必要地重复执行

javascript - 将 For 循环变量传递到 AJAX 成功

javascript - JSON.stringify 输出之间的空间