美文网首页
ES6 解构赋值

ES6 解构赋值

作者: 冰镇苏打水 | 来源:发表于2019-08-02 16:36 被阅读0次

    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'
    

    相关文章

      网友评论

          本文标题:ES6 解构赋值

          本文链接:https://www.haomeiwen.com/subject/cpaldctx.html