简介: 解构赋值是对赋值运算符的一种扩展
适用: ES6中通常针对于对象和数组
优点: 代码简洁易读(如:不需要像在ES5中那样一次只能赋值一个)
(一)ES6之针对于对象进行解构赋值
// ES5写法
let node = {
type:'iden',
name:'foo'
}
let type = node.type;
let name = node.name;
console.log(type); //iden
console.log(name); //foo
// ES6写法
let node = {
type:'iden',
name:'foo'
}
let {type,name} = node;
console.log(type,name);
let obj = {
a:{
name:'张三'
},
b=[],
c:'hello world'
}
let {a} = obj; //不完全解构
console.log(a);
(二)ES6之针对于数组进行解构赋值
let arr = [1,2,3];
let [a,b,c] = arr;
console.log(a,b,c); //完全解构
console.log(a,b); //不完全解构
(三)ES6之剩余运算符和默认值在解构函数中的应用
let obj = {
a:{
name:'张三'
},
b:[],
c:'hello world'
}
let {a,...res} = obj;
console.log(a,res);
let {a,b=30}={a:20};
console.log(a,b);
(四)ES6写法:可嵌套
let [a,[b],c] = [1,[2],3];
console.log(a,b,c);
console.log(a,[b],c);