JSスプレッド演算子:どのように動作し,なぜ役に立つのか
6998 ワード
スプレッド演算子は、JavaScriptのES 6/ES 2015バージョンで導入された構文の超有用な部分です.
主要機能
スプレッド演算子は、iterable(配列式または文字列)を展開できます.それでは何を意味しますか?
基本的に、普及する3つの場所があります. 関数呼び出し(関数の実行) 配列リテラル(新しい配列を作る) objectリテラル(新しいオブジェクトを作る)
関数呼び出し
配列を指定します
概要
関数呼び出しでiterableを別々の引数に広げることができます.
配列リテラル
すばやくコピー、アドオン、および既存の配列に基づいて配列を作成します.
次のように言いましょう.
私はちょうど1つの配列を取得したい場合はどうですか?
その他の例
配列をコピーする(これはオブジェクトに対しても動作します).
次のコピーを作りたいと思います.
スプレッド演算子を使用する1つの良い理由は、非破壊です.ここでは、オリジナルの配列を操作せずにオリジナルのコピーを作成する方法を示します.
結論
スプレッド演算子を使用するので、有用なことができます!私は、これが役に立つ故障であることを望みます.
資源
MDN Docs 写真でDaria Shevtsova pexelsから
主要機能
スプレッド演算子は、iterable(配列式または文字列)を展開できます.それでは何を意味しますか?
基本的に、普及する3つの場所があります.
関数呼び出し
配列を指定します
const emojis = ["sad face", "happy face", "heart", "sun"]
私がコンソールならば.log、文字列の配列を返します.console.log(emojis)
// => ["sad face", "happy face", "heart", "sun"]
私がちょうど配列の内部の内容を望むならば、どうですか?これはスプレッド演算子が入った場所です.console.log(...tvShows)
// => sad face happy face heart sun
スプレッド演算子は、配列からこれらの値を抽出する能力を与えます.概要
関数呼び出しでiterableを別々の引数に広げることができます.
配列リテラル
すばやくコピー、アドオン、および既存の配列に基づいて配列を作成します.
次のように言いましょう.
const dogs = ["Bud", "Champion"]
const cats = ["Stella", "Dolly"]
どのような私はこれらの2つの配列に参加したいですか?こうすることができました.const pets = [dogs, cats]
// => [Array(2), Array(3)]
返り値は入れ子になった配列になります.私はちょうど1つの配列を取得したい場合はどうですか?
const pets = [...dogs, ...cats]
// => ["Bud", "Champion", "Stella", "Dolly"] // YAY!
注:順序は問題です.猫の前に犬を入れていたので、リストで最初に犬を手に入れました.その他の例
[...dogs,"Buddy","cats", "Chester"]
// =>["Bud", "Champion", "Buddy", "Stella", "Dolly", "Chester"]
配列をコピーする(これはオブジェクトに対しても動作します).
次のコピーを作りたいと思います.
const colors = ["green","blue", "yellow"]
JavaScriptでは、既存の配列に等しい変数を設定すると、それらはリンクされ、メモリ上で同じことを指します.const colorCopy = colors
colorCopy.push("white")
colorCopy
// => ["green","blue", "yellow", "white"]
colors // original array also got updated :(
// => ["green","blue", "yellow", "white"]
これは我々のコピーを更新します、しかし、それも我々のオリジナルを更新します.それは我々が欲しいものではない!スプレッド演算子を使用する1つの良い理由は、非破壊です.ここでは、オリジナルの配列を操作せずにオリジナルのコピーを作成する方法を示します.
const colorCopy = [...colors]
colorCopy.push("white")
colorCopy
// => ["green","blue", "yellow", "white"]
colors // original array
// => ["green","blue", "yellow"]
注意:スプレッドは配列をコピーするときに1レベル深くなります.結論
スプレッド演算子を使用するので、有用なことができます!私は、これが役に立つ故障であることを望みます.
資源
Reference
この問題について(JSスプレッド演算子:どのように動作し,なぜ役に立つのか), 我々は、より多くの情報をここで見つけました https://dev.to/allisoncortez/js-spread-operator-how-it-works-and-why-it-s-useful-j50テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol