1、概念:解構賦值可以理解為對賦值運算符的一種擴展。它主要針對數組或者
對象進行模式匹配,然后對模式中的變量進行賦值。
2、特性:采用ES6解構賦值的方式可以代碼的可讀性更高、代碼書寫更加簡潔、清晰。
3、解構模型:分為解構源、解構的目標:解構源=解構的目標
4、解構類型:分為數組類型、對象類型。
數組類型
1.基本用法
let [a,b,c]=[5,15,25];
alert(b);//15
2、嵌套用法
let [a,[b,c],d]=[5,[15,25],50];
alert(c);//25
3、可忽略用法
let [a,,b]=[5,15,25];
alert(b);//25
4、部分解構用法
let [a=5,b]=[10,20];
alert(b);//20
5、剩余運算符用法
let [a,...b]=[10,20,30,40,50];
alert(b);//20,30,40,50
6、字符串用法
let [a,b,c]="how";
alert(a);//h
alert(b);//o
alert(c);//w
對象類型
1、基本用法
let {name,age}={name="小明",age=25};
alert(name);
2、可嵌套、可忽略用法
let person = {p: ['小明', {age: 25}] };
let {p: [name, { age }] } = person;
alert(name);//小明
alert(age);//25
let person = {p: ['小王', {age: 25}] };
let {p: [name, { ?}] } = person;
alert(name);//小王
3、部分解構用法
let person = {p: [{age: 30}] };
let {p: [{ age }, name ] } = person;
alert(name);//undefined
alert(age);//30
4、剩余運算符用法
let {a,...rest} = {a: 10, b: 20, c: 30, d: 40};
console.log(a);//10
console.log(rest);// Object { b: 20, c: 30, d: 40 }
5、解構默認值
let {a = 10, b = 5} = {a: 3};
console.log(a);//3
console.log(b);//b
let {a: aa = 10, b: bb = 50} = {a: 10};
console.log(aa);//10
console.log(bb);//50