默认值
let [foo = true] = []; foo // true let [x, y = 'b'] = ['a']; // x='a', y='b' let [x, y = 'b'] = ['a', undefined]; // x='a', y='b'
ES6 内部使用严格相等运算符(===
),判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined
,默认值是不会生效的。
以下三种解构赋值不得使用圆括号:
(1)变量声明语句中,不能带有圆括号。
(2)函数参数中,模式不能带有圆括号。
(3)赋值语句中,不能将整个模式,或嵌套模式中的一层,放在圆括号之中。
可以使用圆括号的情况只有一种:
赋值语句的非模式部分,可以使用圆括号。
变量的解构赋值用途:
(1)交换变量的值
(2)从函数返回多个值
(3)函数参数的定义
(4)提取JSON数据
(5)函数参数的默认值
(6)遍历Map结构
(7)输入模块的指定方法