允许循环

时间:2016-01-02 16:20:59

标签: javascript google-chrome firefox ecmascript-6

我们可以在let循环中使用for语句,并使用多个变量赋值,例如:

for (let x = 0, y = 0; x < 10; ++ x);

但是,如果我们从另一个变量中引用一个变量,我们就会开始在实现中出现差异;以下结果导致Chrome中的工作代码,但Firefox中的ReferenceError:

for (let x = 0, y = x; x < 10; ++ x);

Firefox解析完整个表达式之后似乎不会将x分配给y,而Chrome会立即执行此操作。请注意,以下内容适用于两种浏览器(for块之外的相同语句):

let x = 0, y = x; // x = 0, y = 0

似乎Firefox的实现不正确(特别是考虑到for块之外的情况),但ES6规范对此有何看法?这是否需要(或已经)报告过?

1 个答案:

答案 0 :(得分:1)

Firefox let是一个旧的非标准实现。最好看的地方是http://kangax.github.io/compat-table/es6/。假设您使用的是Firefox稳定版(43),而不是它当前列出的对ES6 let没有任何支持。