gpt4 book ai didi

javascript - 在 Javascript 中为 "let"赋值

转载 作者:行者123 更新时间:2023-12-04 05:36:01 25 4
gpt4 key购买 nike

我在 Chrome devtools 中玩耍并尝试了以下代码:

let = 1;
let x = 2;

console.log(let); // 1
console.log(x); // 2


如果我用“var”替换“let”,上面的代码将不起作用。

我假设 let = 1var let = 1 相同.如果是这样,不应该 let x = 2翻译成 1 x = 2因此是一个错误?

最佳答案

I'm assuming that let = 1 is the same as var let = 1



它声明了一个变量,但是是 不是 相同。这里的主要区别是省略了像 var 这样的声明。 , let , 或 const , 你声明这个变量 全局* (假设您没有设置先前声明的变量)。这就是所谓的隐式全局 - 臭名昭著的 code smell .

*在大多数情况下,“全局”指的是 window对象,但情况并非总是如此。例如,Node.js 有自己的 global引用当前模块的命名空间对象。

If so, shouldn't let x = 2 be translated to 1 x = 2 and therefore be an error?



号码 let = 1不会覆盖 let 的 native 功能声明/关键字。您只是创建了一个同名的全局变量。 (也许不言而喻,但不要这样做!)

你没有特别问这个,但值得解决:

Why am I allowed to do let = 1 but not var = 1?


varreserved keyword .
let是一个 future 的保留关键字,这意味着它目前只保留在 严格模式 .请记住,如果您要编写经得起时间考验的代码,最好不要使用 let作为标识符。正如 MDN 在链接文章中所述,我想它迟早会成为保留字。

关于javascript - 在 Javascript 中为 "let"赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58962849/

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