【ES6】变量的解构赋值

  • 解构赋值的意思是自动的将一组值对应到同样结构的一组变量中,文中原话是:按照一定模式,从数组和对象中提取值,对变量进行赋值

数组的解构赋值

  • 可以以数组或嵌套数组的结构进行解构赋值
  • 可以在解构赋值左侧表达式中为变量指定默认值(swift 也有类似的能力)。只有当一个数组成员严格等于undefined,默认值才会生效

对象的解构赋值

  • 对象相当于是字典,按属性(key)进行解构
  • 如果变量与属性不同名,可以用“模式”来指定匹配的属性
  • 对象的解构可以嵌套,也可以用 “=” 指定默认值
  • 尽量不要用已经声明的变量进行解构赋值

字符串的解构赋值

  • 字符串也可以进行解构赋值。字符串既可以被当做数组按顺序解构其中的字符,也可以被当做对象解构它的属性(如 length 等)

数值和布尔值的解构赋值

  • 等号右边是数值和布尔值,则会先转为对象

函数参数的解构赋值

  • 函数的参数也可以使用解构赋值,与表达式的解构规则一致
  • 也可以使用默认值,这个特性比较好,可以在部分情况下省去函数内部的参数合法性判断

圆括号问题

  • 只要有可能,就不要在“模式”中放置圆括号
  • 可以在变量中使用圆括号
  • 个人看法最好还是都不用吧

用途

  • 交换变量的值,这个写法有点玄幻。为什么这个写法能正确交换变量值?应该是等号右边的数组是对原变量进行了复制
  • 从函数返回多个值
  • 函数参数的定义
  • 提取 JSON 数据
  • 函数参数的默认值
  • 遍历 Map 结构
  • 输入模块的制定方法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 922评论 0 0
  • 数组的解构赋值 “模式匹配”:只要等号两边的模式相同,左边的变量就会被赋予对应的值。 如果解构不成功,变量的值就等...
    米诺zuo阅读 342评论 0 0
  • 一、数组的解构赋值 es5一次声明多个变量。 es6一次声明多个变量。 es6这种写法属于“模式匹配”,只要等号两...
    追逐_e6cf阅读 702评论 0 6
  • 本文参考阮一峰老师es6入门做的学习笔记。 1.数组的解构赋值。 ES6允许按照一定模式,从数组和对象中提取值,对...
    GXW_Lyon阅读 354评论 0 0
  • 基本概念 只要某种数据结构具有Iterator接口都可以采用解构赋值和for of循环 如:1数组(有序)2对象(...
    coolheadedY阅读 267评论 0 0