重複したプロパティを持つオブジェクトをJavaScriptが無効として拒否することを期待していましたが、場合によってはそれらを受け入れます。
{"a":4,"a":5}
SyntaxError
少なくともFirefoxとChromeでは、プロパティa
が2回定義されているため、明らかな結果になります。
ただし、正常に評価され、FirefoxとChromeの両方({"a":4,"a":5})
でオブジェクトが生成されます。{"a":5}
括弧付きの表現が受け入れられるのはなぜですか?
応答の要約:最初の例は、単にオブジェクトの構築ではなく、ラベル付けされたステートメントのブロックです。オブジェクト内の重複したプロパティは完全に有効です。この場合、最後の定義が優先されます。
ご回答ありがとうございます!