← 返回目录

解构赋值

按一定模式从数组 / 对象中取出值,直接赋给变量,不用一个个取。

1. 数组解构

以前 现在
let arr = ["大哥", "二哥", "三哥"];
let a = arr[0];
let b = arr[1];
let c = arr[2];
let [a, b, c] = ["大哥", "二哥", "三哥"];
console.log(a, b, c);
// 大哥 二哥 三哥

2. 对象解构

以前 现在
let obj = { name: "大喇叭", age: 22 };
let n = obj.name;
let age = obj.age;
let { name, age } = { name: "大喇叭", age: 22 };
console.log(name, age);
// 大喇叭 22(变量名要和属性名一致)

3. 默认值

以前 现在
let arr = ["大哥", "二哥"];
let a = arr[0];
let b = arr[1];
let c = arr[2] === undefined ? "默认值" : arr[2];
let [a, b, c = "默认值"] = ["大哥", "二哥"];
console.log(c);
// 默认值(没取到才用默认值)

4. 交换变量

以前 现在
let a = 1, b = 2;
let temp = a;   // 需要临时变量
a = b;
b = temp;
let a = 1, b = 2;
[a, b] = [b, a];
console.log(a, b);
// 2 1(一行交换)
数组解构用 [],对象解构用 {};默认值只在值为 undefined 时生效。