变量的解构赋值

ES6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。

数组的解构赋值

  1. 数组的元素是按次序排列的,变量的取值由它的位置决定
  2. 解构失败,变量的值等于undefined
  3. 等号右边不是数组(严格地说不是可遍历结构),会报错
  4. 允许指定默认值,数组成员严格等于undefined,默认值才会生效

对象的解构赋值

  1. 对象的属性没有次序,变量必须与属性同名,才能取到正确的值
  2. 解构失败,变量的值等于undefined
  3. 对象的解构赋值的内部机制,是先找到同名属性,然后再赋给对应的变量。真正被赋值的是属性值,而不是属性名
  4. 解构模式是嵌套的对象,而子对象所在的父属性不存在,将会报错
  5. 对象的解构赋值可以取到继承的属性
  6. 允许指定默认值,对象的属性值严格等于undefined,默认值才会生效

字符串的解构赋值

  1. 字符串被转为了一个类似数组的对象
  2. 类似数组的对象都有一个length属性,因此可以对这个属性解构赋值

数值和布尔值的解构

  1. 解构赋值时,如果等号右边是数值和布尔值,会先转为对象
  2. 解构赋值的规则是,只要等号右边的值不是对象或数组,就先将其转为对象。由于undefined和null无法转为对象,所以对它们进行解构赋值会报错

函数参数的解构赋值

类似于数组和对象的解构赋值

圆括号问题

  1. 不能使用圆括号的情况
  • 变量声明语句
  • 函数参数
  • 赋值语句的模式
  1. 可以使用圆括号的情况
  • 赋值语句的非模式部分,可以使用圆括号

用途

  1. 交换变量的值
  2. 从函数返回多个值
  3. 函数参数的定义
  4. 提取JSON数据
  5. 函数参数的默认值
  6. 遍历Map结构
  7. 输入模块的指定方法
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.数组的解构赋值 2.对象的解构赋值 3.字符串的解构赋值 4.数值和布尔值的解构赋值 5.函数参数的解构赋值 ...
    卞卞村长L阅读 922评论 0 0
  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destru...
    呼呼哥阅读 435评论 0 3
  • 本文通过学习阮一峰的博客,外加自己的理解,整理了一下我对js变量的解构赋值的理解。 数组的解构赋值 对象的解构赋值...
    宋乐怡阅读 498评论 0 2
  • 数组的解构赋值 基本用法 ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destru...
    陈老板_阅读 364评论 0 0
  • ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)。 1....
    小挠许阅读 358评论 0 1