gpt4 book ai didi

javascript - 为什么 "let"没有列在 ECMAScript 2019 (ES10) 的关键字中?

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

在 ECMAScript 2019 中,可以使用 let 声明一个新的(词法绑定(bind))变量。 (规范第 13.3.1 节 https://www.ecma-international.org/ecma-262/10.0/index.html#prod-LexicalDeclaration)

为什么关键字列表不包含let( https://www.ecma-international.org/ecma-262/10.0/index.html#prod-Keyword也在第 11.6.2.1 节)?

最佳答案

Javascript 保留字列表早在 2000 年就在 3rd edition of the spec 中修复了。 (第 14 页)。为了向后兼容,不可能扩展此列表,因为那样会破坏现有程序。然而,规范作者无法预测该语言将如何发展,以及需要哪些新关键字。因此,一些“较新”的关键字不会被保留,除非使用严格模式。

var let = 1; // valid in the non-strict mode

从技术上讲,这意味着 letawaityield 等不是编译器的“标记”,而只是标识符,它们被赋予特殊的仅在特定句法位置表示意义,并按其他方式处理(同样,在非严格模式下):

function *yield() { // identifier
yield 1; // keyword
}

var let = 1; // identifier
let x = 2; // keyword

严格模式平等对待“旧”和"new"保留字,尽管错误消息不同(“意外标记”与“严格模式保留字”)。

关于javascript - 为什么 "let"没有列在 ECMAScript 2019 (ES10) 的关键字中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57431255/

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