ES6 解構(gòu)賦值
let obj1 = {
account:{
sale: null
}
}
let obj3 = {
account:{
sale: undefined
}
}
let obj3 = {
account:{
sale: {
name: 'zhangsan'
}
}
}
上面三種數(shù)據(jù)結(jié)構(gòu)
obj1&&obj3是后臺返回形式.obj1
let { account: { sale: { name = 'mixj' } = {} } } = obj1
這個會報錯,
1.理想狀態(tài)是sale不存在就要賦值一個空對象,
2.從空 sale 中找 name,
3.如果name 不存在,賦值 'mixj'.
因為 sale 為 null 不是 undefined,所以第一步就失敗了,然后對一個 null 對象進行解構(gòu).就會報錯
* 當(dāng)沒有該屬性或者該屬性為 undefined 才會賦值
* 對一個 null||undefined解構(gòu)會導(dǎo)致程序拋出錯誤
- obj2
let { account: { sale: { name = 'mixj' } = {} } } = obj2
1.理想狀態(tài)是sale不存在就要賦值一個空對象,
2.從空 sale 中找 name,
3.如果name 不存在,賦值 'mixj'.
log(name) ==> 'mixj'
- obj3
let { account: { sale: { name = 'mixj' } = {} } } = obj3
1.理想狀態(tài)是sale不存在就要賦值一個空對象,
2.從空 sale 中找 name,
3.如果name 不存在,賦值 'mixj'.
log(name) ==> 'zhangsan'