语法错误:在const声明中缺少= Firefox 50

15

我有一个如下的循环:

const bar = {a: 1, b: 2}
for (const k in bar) { //Throws in Firefox but not Chrome 54
    console.log(k)
}

这是一个bug吗?或者可能是规范中的灰色地带?

1个回答

15

是的,这似乎是Firefox中的一个 bug。规范允许使用const关键字:(链接)

IterationStatement:
    for(ForDeclaration in Expression) Statement

ForDeclaration:
    LetOrConst ForBinding

ForBinding:
    BindingIdentifier
    BindingPattern

看起来 Firefox 错误地将 ForDeclaration 解释成了一个LexicalBinding

相关问题: ECMAScript 2015: const in for loops

这似乎是此问题的错误报告:https://bugzilla.mozilla.org/show_bug.cgi?id=1101653


Proper let and const is coming to Firefox: https://twitter.com/evilpies/status/768881995912994816


哎呀,Firefox 犯了我在阅读规范时犯的同样错误。没想到要检查循环以获取特殊行为。 - ssube

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接