解构赋值是什么
解构:意思是把有结构的数据分解开成为一个一个的值
赋值:把解构之后的值保存到变量
// 变量多,值少
let arr = [5, 9, 10];
let [a, b, c, d] = arr;
console.log(a, b, c, d);
// 结论:没有匹配上的值是undefined
// 默认值
let arr = [5, 9];
let [a, b, c, d=4] = arr;
console.log(a, b, c, d);
// 结论:对于没有匹配上的变量,有默认值就使用默认值,否则就是 undefined,
// 变量少,值多
let arr = [5, 9, 10, 8, 3, 2];
let [a, b] = arr;
console.log(a, b);
// 结论:多余的忽略
// 用空跳过不需要的值
let arr = [5, 9, 10, 8, 3, 2];
let [, , a, , b] = arr;
console.log(a, b);
// 结论:不需要用变量接收的值,用空位占位
// 复杂的场景,只要符合模式,即可解构
let arr = [‘zhangsan’, 18, [‘175cm’, ‘65kg’]];
// 如何让a的值是175cm,b的值是65kg
console.log(a, b); // 175cm 65kg
//剩余值
let arr = [5, 9, 10, 8, 3, 2];
let [a, b, …c] = arr; // …c 接收剩余的其他值,得到的c是一个数组
console.log(a, b, c);
// 结果:
// a = 5,
// b = 9,
// c = [10, 8, 3, 2]