javascript - 为什么 let 在 for-of 规范中被挑出来?

标签 javascript ecmascript-6 specifications

the specification的一部分for-of 语句包含以下行:

It is a Syntax Error if the BoundNames of ForDeclaration contains "let".

在我看来,这意味着你不能写:

for (var let of someObject) { /* ... */ }

但是你也会得到其他保留字的语法错误,例如:

for (var function of someObject) { /* ... */ }

for (let for of someObject) { /* ... */ }

明确一点,let 本身就是perfectly valid用于在此处声明 变量。 let 有什么特别之处,这意味着它在此处的规范中被挑出来了,还是我对这一行的解释不正确?

最佳答案

那是因为 let 正式不是 keyword :

In strict mode code, let and static are treated as reserved keywords through static semantic restrictions (see 12.1.1, 13.3.1.1, 13.7.5.1, and 14.5.1) rather than the lexical grammar.

虽然我不能告诉你为什么他们决定这样做。

关于javascript - 为什么 let 在 for-of 规范中被挑出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317632/

相关文章:

javascript - jQuery 关闭 Div 窗口 + cookie

javascript - 如何在 Odoo OCA 小部件 web_widget_x2many_2d_matrix 中按顺序而不是名称对记录进行排序?

specifications - JSON API : Correct way to show links?

javascript - 拆分 div 文本,不使用制表符空格

asp.net - 防止在 HTML 中保存恶意客户端脚本的最佳实践

javascript - 如何在JS中基于 bool 值自动在单词之间插入逗号或&符号?

javascript - 在 JavaScript 中使用 var 关键字创建 block 作用域变量

javascript - 为什么 Yield 不能与请求模块一起使用?

caching - OpenCL 缓冲区缓存行为

uml - 在 UML 类图中表示或暗示 getter 和 setter 的快捷方式