分割代入を使うと配列の値やオブジェクトのプロパティを取り出し、別の変数に代入することができます。スプレッド構文のような配列やオブジェクト自体の完全コピーとは違い、分割代入では配列やオブジェクトの「一部」の値やプロパティにだけアクセスして別の変数に代入することが可能なのが特徴です。
配列に分割代入(destructuring)を使う場合
例その1:返り値の無視
const numbers = [1,2,3]; [num1, ,num3] = numbers; console.log(num1, num3); //1 //3
num1とnum3の間に, ,があり、num2に代入していなく戻り地も無視しているケースです。(Mozillaの説明ページにも似たような例がありました。)
例その2:簡単な使い方
const array = [1, 2, 3]; const [a, b] = array; console.log(a); // prints 1 console.log(b); //prints 2 console.log(array); //prints [1, 2, 3]
aに1、bに2が代入されています。最後のconsole.log(array)では、元々のarray [1, 2, 3] が結果として表示されるのがポイントですね。
オブジェクトに分割代入(destructuring)を使う場合
const myObj = { name: 'Max', age: 28 } const {name} = myObj;
ここで、console.log(name); とすると、'Max'とconsoleに表示されます。
console.log(age);では、undefined(またはエラー)となってしまい、何も取り出せません。
console.log(myObj); では、元のmyObjの中身{name: 'Max', age:28} が表示されます。
Javascriptの分割代入(でストラクチャリング)の様々な使い方ついて
Mozillaの分割代入(Destructuring assignment)構文についてのページはこちら。
Javascriptの分割代入(destructuring)の様々な使い方については、Qiitaのこちらの記事がとても参考になりました。
⇒JavaScript 分割代入(デストラクチャリング)(Qiita)
現在学習中の教材:Udemy: React -The Complete Guide(incl Hooks, React Router, Redux) by maximilian Schwarzmuller
Section2: Refreshing Next Generation Javascript (Optional)
16~23 Javascriptの復習(ES6, ES7, 知っておくべきこと)
Section3: Understanding the Base Features & Syntax
24~25: Module Introduction ~ The Build Workflow
★このブログの内容はSec2.Lec18 Destructuring(分割代入)についてです。
【私も学習中のUdemy講座の公式HPはこちら⇒】世界最大級のオンライン学習サイトUdemy