ES6 解构赋值
let obj1 = {
account:{
sale: null
}
}
let obj3 = {
account:{
sale: undefined
}
}
let obj3 = {
account:{
sale: {
name: 'zhangsan'
}
}
}
-
上面三种数据结构
obj1
&&obj3
是后台返回形式. -
obj1
let { account: { sale: { name = 'mixj' } = {} } } = obj1
这个会报错,
1.理想状态是sale不存在就要赋值一个空对象,
2.从空 sale 中找 name,
3.如果name 不存在,赋值 'mixj'.
因为 sale 为 null 不是 undefined,所以第一步就失败了,然后对一个 null 对象进行解构.就会报错
* 当没有该属性或者该属性为 undefined 才会赋值
* 对一个 null||undefined解构会导致程序抛出错误
- obj2
let { account: { sale: { name = 'mixj' } = {} } } = obj2
1.理想状态是sale不存在就要赋值一个空对象,
2.从空 sale 中找 name,
3.如果name 不存在,赋值 'mixj'.
log(name) ==> 'mixj'
- obj3
let { account: { sale: { name = 'mixj' } = {} } } = obj3
1.理想状态是sale不存在就要赋值一个空对象,
2.从空 sale 中找 name,
3.如果name 不存在,赋值 'mixj'.
log(name) ==> 'zhangsan'
网友评论