gpt4 book ai didi

javascript - 为什么 JavaScript 保留关键字允许作为变量名?

转载 作者:行者123 更新时间:2023-12-01 11:40:58 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Using 'let' as a variable name is not throwing any errors in google v8

(3 个回答)


2年前关闭。




我们知道 letreserved在 JavaScript 中定义变量的关键字。

var let = 2;
console.log(let); // return 2

那么为什么这不是一个错误呢?

最佳答案

let只是严格模式下的保留字:

'use strict';
var let = 5;


Uncaught SyntaxError: Unexpected strict mode reserved word



这是因为浏览器通常优先考虑 向后兼容性高于一切。虽然 let在 ES2015 中引入(并且在此之前的某个时候预见到它的使用),之前使用 let 的脚本作为变量名将继续按需要工作。例如,如果您的脚本是在 2008 年编写的:
var let = 2;
console.log(let);

然后它也将在 2020 年继续工作。

出于非常相似的原因, asyncawait也是 permitted as variable names .

至于为什么要用 let严格模式下的错误——严格模式是在 2009 年的 ES5 中引入的。当时,语言设计者看到 future 可以使用 new 关键字来声明变量,但它还没有确定下来,而 ES6 离我们还有很长的路要走。一旦 ES5 出现,脚本编写者可以选择进入严格模式以减少代码困惑,并将静默错误更改为显式错误。虽然 let还不能用于变量声明,在严格模式下禁止它作为变量名提高了 future 选择进入严格模式的脚本的可读性,同时也不会破坏任何现有脚本。

关于javascript - 为什么 JavaScript 保留关键字允许作为变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60500971/

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