基本概念:本质上是一种匹配模式,只要等号两边模式相同,那么左边变量可以被赋予对应的值。
解构赋值主要分为:数组的解构赋值 、对象的解构赋值
数组解构:如
1 )当我们要接收的变量和要解构的数据长度相等时,会依次根据数据的对应关系分别赋值
//数组解构 let arr = [1,2,3,4]; let [a,b,c,d] = arr; console.log(a,b,c,d);
等号左边是我们要解构的数据对象,等号右边是我们要接收的解构的变量,所以输出的结果是1,2,3,4
2 )当我们要接收的变量和要解构的数据长度不等时,会依次根据数据的对应关系分别赋值 不存在的对应,变量会默认赋值为undefined
let arr = [1,2,3,4]; let [a,b,c,d,e] = arr; console.log(a,b,c,d,e); 1 2 3 4 undefined
因为在数据对象解构的过程中,变量e对应的已经没有数据,所以解构之后,赋值undefined
3 )我们也可以使用扩展运算符来接收剩余的多个解构结果
let arr = [1,2,3,4]; let [a,...arr2] = arr; console.log(a) //1 console.log(arr2) //[2,3,4]
对象解构 如
对象的解构跟数组的类似,不同的是我们是在等号的左边使用{}来接收解构后的结果
let obj = { name:'zhangsan', age:30 } let {name,age} = obj; console.log(name,age)
除此之外我们还可以在解构的过程中,将解构的结果重新命名,赋值给一个新的变量
let obj = { name:'zhangsan', age:30 } let {name:myName,age:myAge} = obj; console.log(myName,myAge)
以上就是常用的两种解构赋值,欢迎交流!