解构赋值-《understanding ECMAScipt6》读书笔记5

对象解构赋值

let node = {
    type: "string",
    name: "foo"
};
let {type, name} = node;


需要注意的点:

  • 当等式右边是null或者undefined会报错
  • 如果等式左边有的值在等式右边找不到,则该值为undefined
  • 可以给左边设定默认值,且默认值只有当预期值===undefined才能够生效
  • 可以不使用默认名称,例let {type:newType, name: newName} = node
  • 上面两个可以组合使用
  • 可以使用嵌套子对象的结构赋值
    let node = {
    name: "foo",
    othenInfo: {
        height: 188
        }
    };
    let {otherInfo:{height}, name} = node;
    
  • 解构的值只会赋值到key/value中的value

数组解构赋值

  • 可以交换对象,例:let [a,b] = [b, a]
  • 可以设定默认值
  • 可以解构嵌套数组
  • 可以使用rest写法,同函数中提到的一样,rest写法只能放在数组的最后一项

混合解构

可以将数组和对象混合体放在一起解构,然而并没有什么好说的。

常用方法

在函数设定默认参数时,例如


setCookie(name, value, {secure, path, domain, expires} = {}){
    //dosomething
}

//给后面参数解构赋值为空对象时,就算传参进来的是undefined也不会报错
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 926评论 0 0
  • 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring...
    嘉奇呦_nice阅读 792评论 0 2
  • 《ECMAScript6 入门》阮一峰 读书笔记 let和constlet声明的变量仅在块级作用域内有效,var声...
    亲爱的孟良阅读 763评论 1 2
  • 对象和数组字面量是JavaScript中两种最常用的数据结构,由于JSON数据结构的普及,两者已经成为语言中特别重...
    厂厂哥阅读 183评论 0 3
  • 睡前聊天。女儿说,妈妈,你是不是很有名?我说理论上是吧!她说,真的?你是大明星?我说,不是大明星,但我的声音在电视...
    金金心阅读 288评论 0 0