- 数组解构赋值
解构例子
let [a, ...b] = [1, 2, 3];
a// 1
b// [2, 3]
错误解构例子
let [a] = 1;
let [a] = false;
let [a] = NaN;
let [a] = undefined;
let [a] = null;
let [a] = {};
解构赋值允许指定默认值
let [a= 1] = [];
a// 1
let [a, b=2] = [1];
a// 1
b// 2
ES6 内部使用严格相等运算符(===)判断一个位置是否有值,如果一个数组成员不严格等于 undefined ,默认值就会失效
let [a = 1] = [undefined];
a // 1
let [a = 1] = [null]
a // null
如果默认值是一个函数,那么函数只会在有需要才会去求值
function fn(num){
console.log(num);
return num;
}
let [a = fn(1)] = [10]; // 不执行函数
let [b = fn(2)] = []; // 执行函数
a // 10
b // 2
网友评论