ホームページ >ウェブフロントエンド >jsチュートリアル >ES6 はすべてのオブジェクト列挙操作で一貫したプロパティの順序を保証しますか?
ES6 プロパティの順序: すべての操作に対して保証されていますか?
問題:
ES6オブジェクトのプロパティ順序を導入します。しかし、この新機能は、for-in ループや Object.keys などのすべてのオブジェクト プロパティの列挙操作に対して明確に定義された順序を保証しますか?
ES2015-ES2019 の答え:
いいえ、すべてではありません
for-in ループ、Object.keys、および JSON.stringify の場合、ES6 では列挙の特定の順序は必要ありません。従来の互換性の問題がこの決定に影響を与えました。
for-in ループで使用される [[Enumerate]] の場合、列挙の順序は指定されていません。 Object.keys もこの動作を継承します。
注: ES2020 ではその後この動作が変更され、従来の操作でもプロパティの順序に従う必要がありました。
その他の操作とプロパティ順序:
前述の操作には定義された列挙順序がありませんが、他の操作は列挙順序に従います。プロパティの順序。これらには次のものが含まれます:
これらの操作の順序は次のとおりです。次のように:
例外: プロキシなどのエキゾチックなオブジェクトは、 [[OwnPropertyKeys]] 内部メソッドと異なる順序でキーを返します。
以上がES6 はすべてのオブジェクト列挙操作で一貫したプロパティの順序を保証しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。