1

我正在尝试更深入地研究 javascript,虽然我找到了关于“var”、“let”和“const”之间差异的解释以及关于 ES6“环境记录”(声明性与对象)的解释,但我是当我在 Google Chrome 浏览器控制台中键入以下代码时,仍然无法理解为什么以下代码的工作方式:

var a = 2;
let b = 4;

console.log(window.a); // 2
console.log(window.b); // undefined

console.log(a); // 2
console.log(b); // 4

如果console.log(b)打印 4,但console.log(window.b)打印undefined,那么b定义的范围是什么?

我知道当var在函数之外使用时,它会undefined在全局范围内创建一个变量。我不明白的是,在上面的示例中,当letconst在函数之外使用时会发生什么?

我根据其他答案假设这种行为与 ES6 环境记录有关,但是当我阅读参考书时,它对我来说确实没有意义。

有人可以用比那本参考书更简单的术语来解释这一点吗?

4

0 回答 0