destructuring
的汉语意思是解开构造体
,我们可以把构造体
理解为复杂结构
, 在ECMAScript
里,复杂结构
就2
种:数组
和对象
。 所以,destructuring
就是把数组
或对象
中的元素一个一个的拿出来,assignment
的汉语意思是赋值
。destructuring assignment
合起来的意思就是把数组
或对象
中的元素分别赋值给对应的变量。
示例1:
let a, b;
[a, b] = [10, 20];
console.log(a); // 10
console.log(b); // 20
示例2:
let a, b, rest;
[a, b, ...rest] = [10, 20, 30, 40, 50];
console.log(a); // 10
console.log(b); // 20
console.log(rest); // [30, 40, 50]
示例1:
const {PI} = Math;
示例2:
const obj = {p: 42, q: true};
const {p, q} = obj;
console.log(p); // 42
console.log(q); // true
示例3:
const obj = {p: 42, q: true};
const {p = 18, q = false, r = '女'} = obj;
console.log(p); // 42
console.log(q); // true
console.log(r); // 女
示例4:
const obj = {p: 42, q: true};
function xx({p}) {
console.log(p); // 42
}
xx(obj);