解构赋值本质上是一种匹配模式,只要等号两边的模式相同,那么左边的变量就可以被赋予对应的值。
主要分为:
1、数组的解构赋值
2、对象的解构赋值
3、基本类型的解构赋值
数组的解构赋值:
代码示例:
let a=1; let b=2; let c=3; //上面代码等价于: let [a,b,c]=[1,2,3]
//
let [, ,c] = [1,2,3]; console.log(c) //3
//
let [x] = [ ]; console.log(x); //undefined
//
let[x=1] = [ ]; console.log(x) //结果是1,在赋值之前给了x一个默认值1
对象的解构赋值:
对象的解构赋值是先找到对象的key值,然后再将赋值。
let {a,b}={b:'bbb',a:'aaa'};
console.log(a,b) //分别log出‘aaa’ 'bbb'
let {a:b} = {a:1}
console.log(b) //1
console.log(a) //报错
基本类型的解构赋值:
let [a,b,c,d] = '1234';
console.log(a,b,c,d) //分别 1 2 3 4
let{length:len} = 'hello';
console.log(len) //5
let {toString:ts} = 1; //Number.prototype.toString方法
let {toS}tring:ts} = true; //Boolean.prototype.toString方法
null 和 undefined不能进行解构赋值