下面两个(或两者都不是)代码片段中的哪一个应该在完整的 ECMAScript 2015 实现中工作:
for (const e of a)
for (const i = 0; i < a.length; i += 1)
据我了解,第一个示例应该有效,因为 e
为每次迭代初始化。 i
不应该也是这种情况吗?在第二个版本中?
我很困惑,因为现有的实现(Babel、IE、Firefox、Chrome、ESLint)似乎并不一致,并且有一个完整的 const
实现。 ,具有两种循环变体的各种行为;我也无法在标准中找到具体的要点,因此将不胜感激。
最佳答案
下面的 for-of 循环有效:
for (const e of a)
ES6 规范将其描述为:
ForDeclaration : LetOrConst ForBinding
命令式 for 循环将不起作用:
for (const i = 0; i < a.length; i += 1)
这是因为声明只在循环体被执行之前计算一次。
关于javascript - ECMA脚本 2015 : const in for loops,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31987465/