ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)
数组的解构赋值
|
|
- 不完全解构
等号左边的模式,只匹配一部分的等候右边的数组
|
|
- 指定默认值
注意:ES6内部使用严格相等运算符(===)判断一个位置是否有值。所以如果一个数组成员不严格等于undefined,默认值是不会生效的
|
|
- let和const命令
只要某种数据结构具有Iterator接口,都可以采用数组形式的解构赋值.
对象的解构赋值
解构赋值也可以用于对象
对象的属性没有次序,变量必须与属性同名,才能取到正确的值
|
|
变量名与属性名不一致
|
|
指定默认值
默认值生效的条件是,对象的属性值严格等于undefined
|
|
现有对象的方法
对象的解构赋值,可以很方便的将现有对象的方法,赋值到某个变量
|
|
字符串的解构赋值
字符串也可以解构赋值
字符串会被转换成类似数组的对象。
|
|
属性解构赋值
类似数组的对象都有length属性,因此还可以对这个属性进行解构赋值。
|
|
函数参数的解构赋值
- 函数的参数也可以解构
|
|
- 函数的参数的解构也可以使用默认值
|
|
结构赋值的用途
- 交换变量的值
|
|
- 从函数返回多个值
|
|
- 提取Json数据
|
|
- 遍历Map结构
|
|
- 输入模块的指定方法
.etc