Firefox和Node.js之间的解释差异

时间:2016-09-15 16:35:58

标签: javascript node.js firefox ecmascript-6

我遇到过Firefox和Node.js之间的异常。给出以下代码:

'use strict';
const obj = {};
for (let f of ['left', 'right']) {
  obj[f] = function() {
    return f;
  };
}
console.log(obj.left());
console.log(obj.right());

Firefox(48.0)输出

right
right

而Node.js(6.4.0)输出

left
right

两者都在Ubuntu 14.04上。我没有可能用其他ECMAScript引擎进行测试。

知道差异的原因是什么,以及哪个实现在规范方面是正确的?

1 个答案:

答案 0 :(得分:1)

此处您的Node版本正确,let循环中的for应具有块范围。

FF 48 simply doesn't support "for/for-in loop iteration scope"但它似乎是用FF 51修复的。