为什么要在for-of规范中单独列出?

时间:2015-12-16 16:51:33

标签: javascript ecmascript-6 specifications

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

  

如果 ForDeclaration 的BoundNames包含“ let ”,则语法错误。

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

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

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

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

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

要明确,let本身perfectly valid用于声明变量。 let有什么特别之处,这意味着它在规范中被单独列出,或者我对这一行的解释不正确?

1 个答案:

答案 0 :(得分:6)

那是因为let正式不是keyword

  

strict mode code中,letstatic通过静态语义限制被视为保留关键字(请参阅12.1.113.3.1.113.7.5.1,和14.5.1)而不是词汇语法。

我无法告诉你为什么他们决定这样做。