函数参数解构赋值
1 | function move({x, y}) { |
但是,以上写法,当函数调用没有传递参数时,就会报错:
1 | move(); // Cannot destructure property `x` of 'undefined' or 'null'. |
所以,当参数使用解构赋值时,需要为参数设置一个默认值。上面的函数改写为:
1 | function move({x, y} = {}) { |
函数参数解构赋值默认值
如下函数 move,接受一个对象为参数,并被解构为变量 x 和 y。变量 x 和 y 使用默认值,可以写成如下形式:
1 | function move({x=0, y=0} = {}) { |
调用该函数:
1 | move({x:1, y:2}); // [1, 2] |
需要注意的是,ES6 内部使用严格相等运算符(===),判断一个位置是否有值,只有一个解构的成员严格等于 undefined,才会触发默认值。
1 | move({x: undefined}); // [0, 0] |