为什么解构很有用
ECMAScript 5以及以前的版本:
虽然这段代码看上去也挺简单的,但想象一下如果你要给大量的变量赋值,你得一个一个的赋值。
或者你需要取一个嵌套结构数据的某个值,也许你得遍历整个结构。
如果你能把数据解构成一些小小的片段,那获取信息将会更加容易。
对象的解构
|
|
注意: 必须初始化
解构赋值
可以赋值给已经定义过的变量:
默认值
|
|
给不同名本地变量赋值
|
|
嵌套对象解构
|
|
数组的解构
|
|
只取你需要的部分
注意: 和对象的解构一样,必须初始化
解构赋值
可以赋值给已经定义过的变量:
在ECMAScript 5 中交换变量值
在ECMAScript 6 中交换变量值
默认值
|
|
嵌套数组解构
|
|
剩余的元素
|
|
数组的第一个值赋给了firstColor,剩下的值组成了一个新的数组赋给了restColors。
ECMAScript 5克隆一个数组:
ECMAScript 6克隆一个数组:
注意: 剩余的元素必须是解构数组的最后一个元素,后面不能有逗号。
混合解构
对象与数组嵌套混合的解构:
参数解构
|
|
解构的参数是必需的
|
|
它实际上是这样运行的:
当解构赋值的右边是null或者undefined,就会抛出错误。
如果你希望解构参数是可选的,你可以这样写:
解构参数的默认值
|
|