違い: 1. Map のキーは任意の値にすることができますが、Object のキーは文字列またはシンボルである必要があります。 2. Map のキーには順序がありますが、Object のキーには順序がありません。 3. Map のキーと値のペアの数は、size 属性を通じて簡単に取得できますが、Object のキーと値のペアの数は手動でのみ計算できます。 4. マップは直接反復できますが、オブジェクトは直接反復できません。 5. キーと値のペアが頻繁に追加または削除されるシナリオでは、マップのパフォーマンスが向上しますが、オブジェクトの効率は低くなります。
このチュートリアルの動作環境: Windows 7 システム、ECMAScript バージョン 6、Dell G3 コンピューター。
オブジェクト
ECMAScript では、オブジェクトは特別なオブジェクトです。これはそれ自体がトップレベルのオブジェクトであり、(new Object() など) を通じてオブジェクトを作成できるコンストラクターでもあります。 JavaScript のすべてのオブジェクトは Object のインスタンスであると考えることができます。オブジェクトはリテラル メソッド const obj = {}
Map
Map を使用して宣言できます。 Object のサブクラスで、キーと値のペアを使用して、任意の型のデータを整然と格納できます。キーは任意の型を格納できます。マップ インスタンスは、const m = new Map(); を通じて取得できます。
Map はオブジェクトに似ており、キーと値のペアのコレクションでもありますが、「キー」の範囲は文字列に限定されず、さまざまな種類の値 (オブジェクトを含む) を取り込むことができます。キーとして使用できます。言い換えると、Object 構造は「文字列と値」の対応を提供し、Map 構造は「値と値」の対応を提供します。これは、ハッシュ構造のより完全な実装です。 「キーと値」のデータ構造が必要な場合は、オブジェクトよりもマップの方が適しています。 Map はパラメータとして配列を受け入れることができます。この配列のメンバーは、キーと値のペアを表す配列です。
##マップ |
オブジェクト | |
---|---|---|
マップのキーには、関数、オブジェクト、または任意の基本タイプを含む任意の値を指定できます。 | オブジェクトのキーは文字列またはシンボルである必要があります。 | |
マップ内のキーは順序付けされています。したがって、反復処理の際、Map オブジェクトは挿入順にキー値を返します。 | オブジェクトのキーには順序がありません。注: ECMAScript 2015 仕様以降、オブジェクトは文字列キーと記号キーの作成順序を保持するため、文字列キーのみを持つオブジェクトを反復処理すると、挿入順序でキーが生成されます。 | |
Map 内のキーと値のペアの数は、size 属性を通じて簡単に取得できます。 | マップ内のキーと値のペアの数オブジェクトは手動でのみ計算できます。 | #Iteration |
オブジェクトを反復するには、反復する前に何らかの方法でそのキーを取得する必要があります。 | パフォーマンス | |
キーと値のペアが頻繁に追加および削除されるシナリオでは最適化されません。 |
以上がES6のマップとオブジェクトの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。