SyntaxError:missing =在const声明Firefox 50中

时间:2016-08-19 17:34:49

标签: google-chrome firefox ecmascript-6 const

我有一个如下的循环:

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

这是一个错误吗?或者也许是规格中的灰色区域?

1 个答案:

答案 0 :(得分:14)

是的,这似乎是Firefox中的一个错误。 spec allows the use of 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

适当的letconst即将来到Firefox:https://twitter.com/evilpies/status/768881995912994816