解构:从数组或者对象中提取值,给变量进行赋值操作就是解构
解构遵循就是模式匹配 等号左右两侧模式相等
数组对象解构
一、数组解构
1.完全解构
let [a,b,c,d,e] = [1,2,3,4,5];
console.log(a,b,c,d,e);
2.不完全解构
let [a,b,c,[d],e] = [1,2,3,[4,5,6],7];
console.log(a,b,c,d,e); // 1 2 3 4 7
3.集合解构
let [a,...b] = [1,2,3,4,5];
console.log(a,b);
4.默认值解构 当没有与变量匹配的值默认值就生效
let [a=4,b=5,c=6] = [1,2,3];
console.log(a,b,c); // 1 2 3
二、对象解构 对象解构 右侧对象中的属性要完成解构 左侧变量必须和属性同名
let {foo:foo,bar:bar} = {foo:'hello',bar:'world'};
let {foo,bar} = {foo:'hello',bar:'world'};
2.嵌套解构
let obj={p:['hello',{y:"world"}]};
let {p:[a,{y:b}]} = obj;
console.log(a,b);