对象解构
获取对象属性值
let obj = {
a: "aaaaaaaa",
b: "bbbbbbb",
c: "ccccccc",
d: "dddddd"
};
let { a, b, c } = obj;
console.log(`a:${a} b:${b} c:${c}`);
运行结果 a:aaaaaaaa b:bbbbbbb c:ccccccc
对对象属性重命名(这里将a重命名为newA)
let obj = {
a: "aaaaaaaa",
b: "bbbbbbb",
c: "ccccccc",
d: "dddddd"
};
let { a: newA, b, c } = obj;
console.log(`newA:${newA} b:${b} c:${c}`);
运行结果 newA:aaaaaaaa b:bbbbbbb c:ccccccc
提供默认值,避免 undefined
let obj = {
a: "a",
b: "b",
c: "c"
};
let { a = false, b, c, d = true, f } = obj;
console.log(`a:${a} d:${d} f:${f}`);
运行结果 a:a d:true f:undefined
获取嵌套对象的属性值 (注:跟原有对象结构保持一致即可)
let obj = {
a: "a",
b: "b",
c: "c",
f: {
str: "测试",
isActive: false
}
};
let { a, f: { str } } = obj;
console.log(`a:${a} str:${str}`);
运行结果: a:a str:测试
数组解构
将数组的元素赋值给变量
let [a, b, c] = ["aaa", "bbb", "cc"];
console.log(a, b, c);
运行结果 aaa bbb cc
提取数组中的部分元素 (注:茅坑要占着,要不,拿到的值就是‘aaa’,很好理解吧)
let [, , c] = ["aaa", "bbb", "cc"];
console.log( c);
运行结果 cc
解构嵌套数组中的元素 (和嵌套对象解构同理,保持解构一致)
let [, , c, [, f]] = ["aaa", "bbb", "cc", ["ddd", "fff"]];
console.log(c, f);
运行结果 cc fff