ES6のマップとはどういう意味ですか?
es6 では、マップはデータ構造であり、「キーと値」のコレクションです。キーは任意のタイプのデータにすることができます。マップは、より完全なハッシュである「値と値」の対応を提供します。構造体の実装の場合、構文は「new Map([iterable])」です。
このチュートリアルの動作環境: Windows 10 システム、ECMAScript バージョン 6.0、Dell G3 コンピューター。
ES6 のマップの意味は何ですか?
Map とは
ES5 より前には、Map のようなデータ コレクションはありませんでした。ES6 でのみ存在しました。に追加されました。
マップはキーと値のコレクションです。キーにはオブジェクトと同様に任意のタイプのデータを使用できますが、オブジェクトのキーには文字列のみを使用できます。
ES6 は Map データ構造を提供します。オブジェクトと似ており、キーと値のペアの集合でもありますが、「キー」の範囲は文字列に限定されず、さまざまな種類の値(オブジェクトを含む)をキーとして使用できます。
言い換えると、Object 構造は「文字列と値」の対応を提供し、Map 構造は「値と値」の対応を提供します。これは、ハッシュ構造のより完全な実装です。
「キーと値のペア」データ構造が必要な場合は、オブジェクトよりもマップの方が適しています。
構文
new Map([iterable])
Iterable には、要素がキーと値のペア (2 つの要素の配列、たとえば [[ 1, ' 1 ' ]、[ 2、 '2' ]])。
各キーと値のペアが新しいマップに追加されます。
null は未定義として扱われます。
オブジェクトとマップの比較:
オブジェクトとマップは、両方ともキーを押して値にアクセスし、キーを削除し、検出できるという点で似ています。キーがバインドされているかどうか。したがって (そして組み込みの代替手段はありません)、私たちは常にオブジェクトをマップとして扱ってきました。ただし、マップとオブジェクトの間には重要な違いがいくつかあります。次の状況ではマップを使用することをお勧めします
オブジェクトのキーには文字列またはシンボルのみを使用できますが、キーはマップ キーの値には、関数、オブジェクト、プリミティブ型などの任意の値を指定できます。
マップ内のキー値は順序付けされていますが、オブジェクトに追加されたキーは順序付けされていません。したがって、それを反復処理すると、Map オブジェクトは挿入順にキー値を返します。
マップのキーと値のペアの数は、size 属性を通じて直接取得できますが、オブジェクトのキーと値のペアの数は手動でのみ計算できます。
Map は直接反復できますが、Object の反復では、最初にキー配列を取得してから反復する必要があります。
オブジェクトには独自のプロトタイプがあり、プロトタイプ チェーン上のキー名がオブジェクトに設定したキー名と競合する可能性があります。 ES5 では、map = Object.create(null) を使用してプロトタイプなしでオブジェクトを作成できますが、この使用法はあまり一般的ではありません。
マップは、キーと値のペアの追加と削除が頻繁に行われるシナリオでは、パフォーマンス上の利点がいくつかあります。
例は次のとおりです:
// 字符串作为key,和JS对象类似 var map = new Map() // set map.set('name', 'John')//两个参数,分为对应map中key,value, 推进去的时候会自动检查类型,Object,String,Array等l map.set('age', 29) // get map.get('name') // John map.get('age') // 29 这么对代码,看起来确实没有JS对象简洁 但Map的强大之处在于它的key可以是任意类型 // 对象作为key演示 var xy = {x: 10, y: 20} // 坐标 var wh = {w: 100, h: 200} // 宽高 var map = new Map() // set map.set(xy, '坐标') map.set(wh, '宽高') // get map.get(xy) // '坐标' map.get(wh) // '宽高'
結果:
[関連する推奨事項:JavaScript ビデオ チュートリアル 、Web フロントエンド ]
以上がES6のマップとはどういう意味ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









非同期はes7です。 async と await は ES7 に新しく追加されたもので、非同期操作のソリューションです。async/await は co モジュールとジェネレーター関数の糖衣構文と言え、より明確なセマンティクスで JS 非同期コードを解決します。名前が示すように、async は「非同期」を意味します。async は関数が非同期であることを宣言するために使用されます。async と await の間には厳密な規則があります。両方を互いに分離することはできず、await は async 関数内でのみ記述できます。

ES6 では、配列オブジェクトの reverse() メソッドを使用して、配列の反転を実現できます。このメソッドは、配列内の要素の順序を逆にして、最後の要素を最初に、最初の要素を最後に配置するために使用されます。構文「array」 。逆行する()"。 reverse() メソッドは元の配列を変更します。変更したくない場合は、拡張演算子 "..." とともに使用する必要があり、構文は "[...array].reverse() 」。

手順: 1. 構文 "newA=new Set(a); newB=new Set(b);" を使用して、2 つの配列をそれぞれセット型に変換します; 2. has() と filter() を使用して差分セットを検索します、構文 " new Set([...newA].filter(x =>!newB.has(x)))" では、差分セット要素がセット コレクションに含まれて返されます。 3. 配列を使用します。 from セットを配列に変換するタイプ、構文は「Array.from(collection)」です。

ブラウザの互換性のため。 ES6 は JS の新しい仕様として、多くの新しい構文と API を追加していますが、最新のブラウザーは ES6 の新機能を高度にサポートしていないため、ES6 コードを ES5 コードに変換する必要があります。 WeChat Web 開発者ツールでは、デフォルトで babel が使用され、開発者の ES6 構文コードを 3 つの端末すべてで適切にサポートされる ES5 コードに変換し、開発者がさまざまな環境によって引き起こされる開発上の問題を解決できるようにします。プロジェクト内でのみ設定して確認するだけです。 「ES6~ES5」オプション。

es5 では、for ステートメントと IndexOf() 関数を使用して配列の重複排除を実現できます。構文 "for(i=0;i<配列長;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}」。 es6 では、スプレッド演算子 Array.from() および Set を使用して重複を削除できます。まず配列を Set オブジェクトに変換して重複を削除してから、スプレッド演算子または Array.from() 関数を使用する必要があります。 Set オブジェクトを配列に変換してグループ化するだけです。

es6 では、一時的なデッド ゾーンは構文エラーであり、ブロックを閉じたスコープにする let および const コマンドを指します。コード ブロック内では、let/const コマンドを使用して変数が宣言される前に、変数は使用できず、変数が宣言される前は変数の「デッド ゾーン」に属します。これは構文上「一時デッド ゾーン」と呼ばれます。 ES6 では、一時的なデッド ゾーンや let ステートメントや const ステートメントでは変数のプロモーションが発生しないことを規定しています。これは主に実行時エラーを減らし、変数が宣言される前に使用されて予期しない動作が発生するのを防ぐためです。

いいえ、require は CommonJS 仕様のモジュール構文であり、es6 仕様のモジュール構文は import です。 require は実行時にロードされ、import はコンパイル時にロードされます。require はコード内のどこにでも記述できます。import はファイルの先頭にのみ記述でき、条件文や関数スコープでは使用できません。モジュール属性は導入されるだけです。 require を実行した場合、そのためパフォーマンスは比較的低くなりますが、インポート コンパイル中に導入されたモジュールのプロパティのパフォーマンスはわずかに高くなります。

地図は注文済みです。 ES6 のマップ タイプは、多くのキーと値のペアを格納する順序付きリストです。キー名と対応する値はすべてのデータ型をサポートします。キー名の等価性は、「Objext.is()」メソッドを呼び出すことによって決定されます。 , したがって、数字の 5 と文字列「5」は 2 つのタイプとして判断され、プログラム内で 2 つの独立したキーとして現れることができます。
