84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
次のようなオブジェクトを作成すると:
生成されるオブジェクトは常に次のようになりますか?リーリー
は (ただし、常に挿入順であるとは限りません)。
ほとんどのブラウザはオブジェクト プロパティを次のように反復処理します:
一部の古いブラウザでは、カテゴリ #1 と #2 を組み合わせて、挿入順序ですべてのキーを反復処理します。キーが整数に解決される可能性が高い場合は、特定の反復順序に依存しないことが最善です。
現在の言語仕様 (ES2015 時点)正の整数 (「7」や「99」など) に解決されるキーを除き、挿入順序は保持されます。その場合、ブラウザーの動作は異なります。たとえば、Chrome/V8 では、キーが数値に解決される場合、挿入順序は考慮されません。
古い言語仕様 (ES2015 より前): 反復順序は技術的に未定義ですが、すべての主要なブラウザーは ES2015 の動作に準拠しています。
ES2015 の動作は、既存の動作によって言語仕様が決定される良い例であり、その逆ではないことに注意してください。下位互換性の考え方をより深く理解するには、http://code.google.com/p/v8/issues/detail?id=164を参照してください。Chrome のバグの詳細については、Chrome のイテレーションについて説明しています。シーケンシャルの背後にある設計上の決定行動。 バグレポートの (かなり独断的な) コメントの 1 つによると:
ES2015 以降、オブジェクトの反復順序は特定のルールに従いますが、(常に) 挿入順序に従うわけではありません。簡単に言えば、反復順序は、文字列キーの挿入順序と数値のようなキーの昇順の組み合わせです。 リーリー
Mapオブジェクト を使用することは、おそらくこれを実現するより良い方法です。Objectおよびを含むMapは、例外なく、挿入順序でキーを反復することが保証されています:
オブジェクト を使用することは、おそらくこれを実現するより良い方法です。
および
Map
ECMAScript 3rd Edition (pdf):から取得されています。
は (ただし、常に挿入順であるとは限りません)。
ほとんどのブラウザはオブジェクト プロパティを次のように反復処理します:
一部の古いブラウザでは、カテゴリ #1 と #2 を組み合わせて、挿入順序ですべてのキーを反復処理します。キーが整数に解決される可能性が高い場合は、特定の反復順序に依存しないことが最善です。
現在の言語仕様 (ES2015 時点)正の整数 (「7」や「99」など) に解決されるキーを除き、挿入順序は保持されます。その場合、ブラウザーの動作は異なります。たとえば、Chrome/V8 では、キーが数値に解決される場合、挿入順序は考慮されません。
古い言語仕様 (ES2015 より前): 反復順序は技術的に未定義ですが、すべての主要なブラウザーは ES2015 の動作に準拠しています。
ES2015 の動作は、既存の動作によって言語仕様が決定される良い例であり、その逆ではないことに注意してください。下位互換性の考え方をより深く理解するには、http://code.google.com/p/v8/issues/detail?id=164を参照してください。Chrome のバグの詳細については、Chrome のイテレーションについて説明しています。シーケンシャルの背後にある設計上の決定行動。 バグレポートの (かなり独断的な) コメントの 1 つによると:
ES2015 以降、オブジェクトの反復順序は特定のルールに従いますが、(常に) 挿入順序に従うわけではありません。簡単に言えば、反復順序は、文字列キーの挿入順序と数値のようなキーの昇順の組み合わせです。 リーリー
配列またはMap
ES2015 より前は、オブジェクト内のプロパティの順序はまったく保証されていなかったことに注意してください。オブジェクトの定義はオブジェクト を使用することは、おそらくこれを実現するより良い方法です。
Objectおよび
を含むMap
は、例外なく、挿入順序でキーを反復することが保証されています:ECMAScript 3rd Edition (pdf):から取得されています。