1. スプレッド演算子スプレッド演算子は 3 つのドット ... で、複数の引数 (関数呼び出しなど) または複数の値 (配列など) が必要な場合に、式をその場で展開し、コンマで区切られた引数のシーケンスに変換できます。 サンプルコードは次のとおりです。 // 配列を定義する let arr = [1, 2, 3, 4, 5, 6] // ... スプレッド演算子を使用して展開 console.log(...arr); // 1 2 3 4 5 6 // 関数を定義する function fun(...item) { console.log(...項目); } // 関数 fun(1, 2, 3, 4, 5, 6) を呼び出す // 1 2 3 4 5 6 // 式で使用する let x = 10 arr = [ ...(x > 0 ? ['a'] : []), 'b'、 ]; console.log(...arr); //ab 2. 代替のapply()メソッドスプレッド演算子は配列を展開できるため、 サンプルコードは次のとおりです。 // 関数を定義する function fun(a, b, c, d, e) { コンソールにログ出力します。 } // 配列を定義する let arr = [1, 2, 3, 4, 5] // ES5 呼び出しメソッド fun.apply(null, arr) //1 2 3 4 5 // ES6 呼び出しメソッド fun(...arr) // 1 2 3 4 5 実際の開発で配列内の最大値を取り出す場合、次のような方法が使用されます。 arr = [1, 20, 30, 50, 3, 88, ] とします。 // ES5 では、max = Math.max.apply(null, arr) とします。 console.log(最大); // 88 E は次のように記述されます。 arr = [1, 20, 30, 50, 3, 88, ] とします。 // ES6 では max = Math.max(...arr) とします console.log(最大); // 88 3. 拡張演算子の適用拡張配列の応用は主に以下の側面に反映される。 1. 配列をコピーする
サンプルコードは次のとおりです。 まず、ディープ コピーとシャロー コピーの概念を理解しましょう。
arr1 = [1, 2, 3, 4, 5]とします。 arr2 = arr1とする console.log(arr2); // [ 1, 2, 3, 4, 5 ] // arr2のデータ内容を変更します。 arr2[2] = 6; // 両方とも変更されます console.log(arr1, arr2); // [ 1, 2, 6, 4, 5 ] [ 1, 2, 6, 4, 5 ] ディープコピーを完了する場合のサンプルコードは次のようになります。 arr1 = [1, 2, 3, 4, 5]とします。 arr2 = []とする // ES5 の場合 (let i = 0; i < arr1.length; i++) { arr2[i] = arr1[i]; } ar2[2] = 6; // arr2 のみが変更 console.log(arr1, arr2); // [ 1, 2, 3, 4, 5 ] [ 1, 2, 6, 4, 5 ] // ES6 arr2 = [...arr1] ar2[2] = 6; // arr2 のみが変更 console.log(arr1, arr2); // [ 1, 2, 3, 4, 5 ] [ 1, 2, 6, 4, 5 ] 2. 配列を結合するスプレッド演算子は、配列のマージを記述する新しい方法を提供します。サンプルコードは次のとおりです。 arr1 = ['a', 'b']; 定数 arr2 = ['c']; 定数 arr3 = ['d', 'e']; // ES5 マージされた配列 console.log(arr1.concat(arr2, arr3)); // [ 'a', 'b', 'c', 'd', 'e' ] // ES6 マージ配列 console.log([...arr1, ...arr2, ...arr3]); // [ 'a', 'b', 'c', 'd', 'e' ]
3. 分離割り当てで使用するスプレッド演算子を分割代入と組み合わせて、配列を生成することができます (残りのデータを取得するため)。
サンプルコードは次のとおりです。 // シナリオ分析: 配列の最初と最後の値を取得する let arr = [1, 2, 3, 4, 5] まず、休んでください。 // ES5 の書き方: Array.slice() 関数を借用する first = arr[0] 残り = arr.slice(1) console.log(first, rest); // 1 [ 2, 3, 4, 5 ] // ES6 の書き方 [first, ...rest] = arr console.log(first, rest); // 1 [ 2, 3, 4, 5 ] 4. 文字列を配列に分割するスプレッド演算子は文字列を真の配列に変換することもできます。サンプルコードは次のとおりです。 let str = '狐鬼の仲人' console.log([...str]); // [ 'fox', 'demon', 'little', 'red', 'mother' ] JS ES拡張演算子の新機能紹介に関するこの記事はこれで終わりです。ES拡張演算子の導入についての詳細は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: HTML ドキュメントに CSS を埋め込む一般的な 3 つの方法
>>: CSS フロートプロパティ図 フロートプロパティの詳細
目次1. RabbitMqの動作環境を構築する1.検索を通じてrabbitmqイメージを照会する2....
WeChatアプレットはスクロールビューを使用して左右のリンクを実現します。参考までに、具体的な内容...
目次1. パーティクルエフェクト2. シーンを読み込む3. さまざまな粒子効果の実現エンディング: ...
この記事では、MySQL無料インストール版(zip)のインストールと設定のチュートリアルを参考までに...
序文カバーリング インデックスについて説明する前に、まずそのデータ構造である B+ ツリーを理解する...
1 yumでソフトウェアをインストールしたときにダウンロードしたrpmパッケージを保存しますyum ...
データ操作とメンテナンスに少しでも知識のある人なら、MySQL 5.5 以前では再生に単一の SQL...
letter-spacing プロパティ: 文字間のスペース (文字間隔) を増減します。このプロ...
パブリックアカウントのファンデータを同期してバッチプッシュするときに、サーバーがエラー502を報告し...
Zabbix カスタム スクリプトを使用して監視データを収集する場合、通常、次の問題が発生します。サ...
1.1 ディレクトリ構造の構築この操作は、nginx+mysql+tomcat+dbのディレクトリ構...
この記事では、例を使用して、MySQL 外部キーの 3 つの関係について説明します。ご参考までに、詳...
目次1 Java環境の設定2 tomcatのインストールと展開Tomcat をインストールして展開す...
この記事では主に、オブジェクト内のフィールドを削除するための js の実装を紹介し、次のように共有し...
この記事では、ソシュールの言語哲学などの理論に基づいて、CSS の class 属性は不要であると主...