ES6 解构赋值

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'
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 数组的解构赋值 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructur...
    _羊羽_阅读 3,567评论 0 1
  • 前面的话 我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在ES6中添加了可以简化这种任务的新特性...
    sunnyghx阅读 4,119评论 0 0
  • 引入 在ES5中,开发者们为了从对象和数组中获取特定数据并赋值给变量,编写了许多看起来同质化的代码 这段代码从op...
    nengzhuan_zhang阅读 3,728评论 0 0
  • 我的妈妈是一个很简单的女人,很感性的妻子,很多事的母亲,很有责任心的又很善良的公民,但却是一个很无趣,又有点刻薄...
    军哥mr阅读 1,666评论 0 0
  • 2017.5.23,刘腾权分享奇迹感恩 一奇迹 1 这几天的读功课越来越感觉好,观注自己的内在我很开心,越来越静,...
    刘腾权湖北潜江阅读 1,778评论 0 0

友情链接更多精彩内容