灵魂画手与数组解构赋值

492 阅读1分钟

总觉得用文字描述解构赋值不直观,作为灵魂画手,我决定拿起🖌

基本用法

会按照数组两边相同的下标来依次赋值

let [a, b, c] = [1, 2, 3];
console.log(a, b, c);// 1 2 3

图片.png

两边数量不匹配的时候,会忽略掉不匹配的位置

let [a1, b1, c1] = [4, 5];
console.log(a1, b1, c1);// 4 5 undefined

图片.png

let [a2, b2] = [6, 7, 8];
console.log(a2, b2);// 6 7 undefined

图片.png

默认值

解构赋值可以使用默认值,如果没有赋值的话,左侧变量会使用默认值

let [a3, b3, c3, d3 = 4] = [1, 2, 3];
console.log(a3, b3, c3, d3);// 1 2 3 4

图片.png

嵌套数组

和一维数组是一样的,内层的数组也会按照下标依次匹配

let [a4, b4, [c4, d4 = 4, e4]] = [1, 2, [3]];
console.log(a4, b4, c4, d4, e4);1 2 3 4 undefined

图片.png

扩展-对象的解构赋值

对象的解构赋值和数组的行为是类似的,只是把按下标对应换成了按属性名对应

let obj = { name: "波罗丁", age: 18 };
let { name, age } = obj;
console.log(age); // 18

图片.png