gpt4 book ai didi

javascript - "let"与 "var"内的 "block"

转载 作者:行者123 更新时间:2023-11-29 14:38:49 26 4
gpt4 key购买 nike

不确定其他地方是否已经回答了这个问题。我经历了this回答

这是我的代码:

var fruit = "apple";
if (true) {
console.log(fruit); // expected "apple"
let fruit = "orange"; // since this is not hoisted to the top
console.log(fruit); // "orange" as expected
}

为什么我们不能在 if block 中访问外部变量 fruit。我知道用 let 声明的变量不会在 block /函数范围内提升。

我收到 Uncaught ReferenceError: fruit is not defined 错误。为什么会这样?

不过,如果我将 if block 中的变量名称更改为其他名称,那么它会按预期工作。那么为什么会出现同名冲突,主要是 let fruit = "orange" 没有被提升到顶部。

最佳答案

  • 变量“fruit”的范围在 block 内定义。
  • 请查看引用资料。您的场景在“时间死区和 let 错误”和“另一个示例”下得到了很好的解释

引用 - https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Statements/let

谢谢斯里拉姆

关于javascript - "let"与 "var"内的 "block",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41542107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com