1.对象解构赋值:
let person={name:'guanguan',age:25};
let {name,age}=guanguan;
name;//"guanguan"
age;//25
//注:用let,var,const,声明解构赋值时,必须提供等号右侧的值
(1)默认值
let person={name:'guanguan',age:25};
let {name,age,sex}=guanguan;
sex;//undefined
let person={name:'guanguan',age:25};
let {name,age,sex='famale'}=guanguan;
sex;//'female'
(2)改变不同名称:
let person={name:'guanguan',age:25};
let {name:myname,age:myage}=person;
myname;//'guanguan';
myage://25;
let person={name:'guanguan',age:25};
let {name:myname,sex:mysex='female'}=person;
myname;//'guanguan';
mysex://'female';
(3)嵌套
let person={name:'guanguan',
start:{
end:{
line:4},
a:1,
b:2}
age:25};
let {start:{end:myend}} = person;
myend.line;//4
2.数组解构赋值
let colors=['red','green','yellow'];
let [firstColor,secondColor]=colors;
firstColor;//'red'
secondColor;//'green'
如果只想取第三个元素
let colors=['red','green','yellow'];
let [,,thirdColor]=colors;
thirdColor;//'yellow'
es6互换值
let a=1,b=2;
[a,b]=[b,a]
默认值:
let color=['red'];
let[first,second='green']=color;
first;//'red';
second;//'green';
嵌套解构
let color=['red',['blue','green']];
let [first,[second,third]]=color;
first;//"red"
second;//"blue"
third;//"green"
剩余项
let colors=['red','green','yellow'];
let[first,...rest]=color;
rest[0];//'green'
3.混合解构:
let node = {
type: "Identifier",
name: "foo",
loc: {
start: {
line: 1,
column: 1
},
},
range: [0, 3]
};
let {loc: { start },range: [ startIndex ]} = node;
console.log(start.line); // 1
console.log(start.column); // 1
console.log(startIndex);