解构赋值允许指定默认值。
ES6内部使用严格相等运算符(===),判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined,默认值是不会生效的。
例如:
上面代码中,如果一个数组成员是null,默认值就不会生效,因为null不严格等于undefined。
如果默认值是一个表达式,那么这个表达式只有在用到的时候,才会求值。
虽然将函数f赋值给变量x,但是因为x能取到值,所以函数f是不会执行的,最后输出的结果是x的值为1.
默认值可以引用解构赋值的其他变量,前提是该变量必须已经声明。
最后一个表达式会报错,是因为x用到默认值y时,y还没有声明。