12
に私は次のようなループを持っている:にSyntaxError:行方不明=定数宣言のFirefox 50
const bar = {a: 1, b: 2}
for (const k in bar) { //Throws in Firefox but not Chrome 54
console.log(k)
}
は、これはバグですか?または、仕様の灰色の領域ですか?
に私は次のようなループを持っている:にSyntaxError:行方不明=定数宣言のFirefox 50
const bar = {a: 1, b: 2}
for (const k in bar) { //Throws in Firefox but not Chrome 54
console.log(k)
}
は、これはバグですか?または、仕様の灰色の領域ですか?
はい、これはFirefoxのバグのようです。 spec allows the use of const
:
IterationStatement:
for(ForDeclaration in Expression) Statement
ForDeclaration:
LetOrConst ForBinding
ForBinding:
BindingIdentifier
BindingPattern
(切り捨てと単純化された)
Firefoxが誤っLexicalBindingとしてForDeclarationを解釈しているようです。
関連:https://bugzilla.mozilla.org/show_bug.cgi?id=1101653:ECMAScript 2015: const in for loops
これは、この問題のバグレポートのように思えます。
適切let
とconst
は、Firefoxに来ている:スペックを読むときhttps://twitter.com/evilpies/status/768881995912994816
えっ、Firefoxは私が作った同じ間違いをしています。特別な動作のループをチェックするとは思わなかった。 – ssube