该语句的部分规范for-of
包含以下行:
如果ForDeclaration的BoundNames包含" let " ,则为语法错误.
在我看来,这意味着你不能写:
for (var let of someObject) { /* ... */ }
但是您也会收到其他保留字的语法错误,例如:
for (var function of someObject) { /* ... */ }
要么
for (let for of someObject) { /* ... */ }
要清楚,在这里用于声明变量let
本身是完全有效的.这有什么特别意味着它在规范中被单独列出,或者我对这一行的解释不正确?let
那是因为let
官方不是关键字:
在严格的模式码,
let
并且static
被视为通过静态语义限制保留关键字(见12.1.1,13.3.1.1,13.7.5.1,和14.5.1),而不是词法文法.
我不能告诉你为什么他们决定这样做.