2023.1.29今天我学习了数组的解构赋值的默认值的使用。
解构赋值允许指定默认值。
如:
let [foo = true] = [];
foo // true
let [x,y = 'b'] = ['a'];
// x = 'a' y = 'b'
let [x,y = 'b'] = ['a',undefined];
//x = 'a' y = 'b'
let [x = 1] = [undefined];
x // 1
let [x = 1] = [null]
x // null
上面的代码中,如果一个数组成员是null,默认值就不会生效,因为null不严格等于undefined。
默认值可以引用解构赋值的其他变量,但该变量必须已经声明。
如:
let [x = 1,y = x] = [] // x = 1;y = 1
let [x = 1,y = x] = [2] // x = 2;y = 2
let [x = 1,y = x] = [1,2] // x = 1;y = 2
let [x = y,y = 1] = [] // ReferenceError
上面最后一个表达式之所以会报错,是因为x用到了默认值y时,y还没有声明。