我们可以在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规范对此有何看法?这是否需要(或已经)报告过?
答案 0 :(得分:1)
Firefox let
是一个旧的非标准实现。最好看的地方是http://kangax.github.io/compat-table/es6/。假设您使用的是Firefox稳定版(43),而不是它当前列出的对ES6 let
没有任何支持。