解构赋值: 分解一个对象的结构
1.数组
let arr = [1,2,3]
let [a,b,c] = arr //左边的结构和右边类似
a = 1 //true
b = 2 //true
c = 3 //true
2.复杂嵌套
let arr2 = [{
name: 'hzj',
age: '20'
},[1,2],3]
let [obj,[a,b],c] = arr2
// obj = {name: 'hzj',age: '20'}
// a = 1, b = 2
// c = 3
console.log(obj.name) // 输出'hzj'
3.对象解构的变量名
let obj = {name: 'hzj',age: 10}
let {name,age} = obj
// name = 'hzj'
// age = 10
// 若想自定义变量名称
let {name: newName,age: newAge} = obj
// newName = 'hzj', newAge = 10
// name未定义
// age未定义,因为名字已经变了.
4.默认解构赋值
let obj = {name: 'hzj'} //无age属性
let {name,age} = obj //name为'hzj',age为undefined
let {name,age=10} = obj //name为'hzj',age为10
//如果能取出来值就用取出来的值,没有就用默认的值
5.省略解构
let arr = [1,2,3,4]
let [,,,a] = arr
// a = 4,只有a被解构
网友评论