1.数组解构
等号左边的变量放到中括号内部,匹配右侧数组中的元素。
1. 基本数组解构
let [a,b,c] = [1,2,3]
2.不完全解构
let [a,b,c,d,[e]] = [1,2,3,4,[5,6]];
3.集合解构 ...扩展运算符
let [a,...b] = [1,2,3,4];
4.默认值解构(但匹配的值严格等于underfined时,默认值成效)
let [a=1,b=2,c=3] = [6,7,8];
let [a=1,b=2,c=3] = [];
5.默认值也可以是函数
function test(){console.log('marry')}
let [a=test()] = [2];
2.对象解构
等号左边的变量放到大括号内部,匹配右侧对象中的元素。对象的属性没有次序,变量必须与属性同名,才能取到正确的值
1.基本对象解构
let {boo,zhu} = {boo:'ddd',zhu:'1111'};
2.如果变量名和属性名不一致,需要重命名
let {foo:baz}={foo:"hello",bar:"world"}; baz:hello
3.对象的解构赋值是下面形式的简写 前面属性名后边变量名
let {foo:foo,bar:bar}={foo:'hello',bar:"world"};
4.嵌套结构
let obj = {p:['hello',{y:'wofir'}]};
let {p:[a,{u:b}]} = obj;
5.默认值结构
let {x:y=3} = {};
3.字符串解构
1.可以使用对象解构或者是数组解构,使用数组解构可以获取指定字符;使用对象解构可以获取实例属性方法。
let [a,b,c] = 'hello';
2.也可以将string字符串转换为数组
let [...a] = 'world';
3.使用对象解构
let {object,toString} = 'hello';
4.数值解构
可以获取到数值包装器构造函数原型中的指定的方法。
let {toString,valueOf} = 10;
5.布尔值解构
let {toString,valueOf} = true;