分解代入は、代入演算子=を配列やオブジェクトに対して操作できるように拡張したもの。
オブジェクトのデコンストラクション
//オブジェクトのデコンストラクション
let node = {
id: 1,
name: 'hattie'
}
// let id = node.id;
// let name = node.name;
let {
id,
name,
age
} = node; //上記の2つの文の代わりに、変数名が以下のものに対応していることに注目してほしい。
console.log(id); //1 不完全なデコンストラクション
console.log(id, name, age); //1 "hattie" undefined
//使用可能な残余演算子
let {...res} = node;
console.log(res); //{id: 1, name: "hattie"}
配列のデコンストラクション
let arr = [1, 2, 3, 4];
let [a, b] = arr;
console.log(a, b); //1 2
分解可能な入れ子構造
let arr = [1, [2, [3]]];
let [a, [b, [c]]] = arr; //配列構造の対応
console.log(a, b, c); //1 2 3





