我有一个如下的循环:
const bar = {a: 1, b: 2}
for (const k in bar) { //Throws in Firefox but not Chrome 54
console.log(k)
}
这是一个bug吗?或者可能是规范中的灰色地带?
我有一个如下的循环:
const bar = {a: 1, b: 2}
for (const k in bar) { //Throws in Firefox but not Chrome 54
console.log(k)
}
这是一个bug吗?或者可能是规范中的灰色地带?
是的,这似乎是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