ES6 解构赋值

2019-08-02  本文已影响0人  冰镇苏打水

ES6 解构赋值

let obj1 = {
    account:{
        sale: null
    }
}

let obj3 = {
    account:{
        sale: undefined
    }
}

let obj3 = {
    account:{
        sale: {
            name: 'zhangsan'
        }
    }
}
let { account: { sale: { name = 'mixj' } = {} } } = obj1

这个会报错,
1.理想状态是sale不存在就要赋值一个空对象,
2.从空 sale 中找 name,
3.如果name 不存在,赋值 'mixj'.

因为 sale 为 null 不是 undefined,所以第一步就失败了,然后对一个 null 对象进行解构.就会报错
* 当没有该属性或者该属性为 undefined 才会赋值
* 对一个 null||undefined解构会导致程序抛出错误
let { account: { sale: { name = 'mixj' } = {} } } = obj2

1.理想状态是sale不存在就要赋值一个空对象,
2.从空 sale 中找 name,
3.如果name 不存在,赋值 'mixj'.

log(name) ==> 'mixj'
let { account: { sale: { name = 'mixj' } = {} } } = obj3

1.理想状态是sale不存在就要赋值一个空对象,
2.从空 sale 中找 name,
3.如果name 不存在,赋值 'mixj'.

log(name) ==> 'zhangsan'
上一篇 下一篇

猜你喜欢

热点阅读