数组的解构赋值(未完成)

解构赋值:
如果要解构数组,那么声明变量的时候就要是个数组(左右两边都要是数组)。

// 报错
let [foo] = 1;
let [foo] = false;
let [foo] = NaN;
let [foo] = undefined;
let [foo] = null;
let [foo] = {};

数组中的变量可以默认赋值,当等号右边没有值的情况下,会走默认
否则走右边的值


先从右往左赋值,如果右边都为undefined,
此时就看左边的数组变量,数组变量执行的顺序为从左边到右边
如果数组变量的右边使用了数组变量的左边的变量,那么是能够赋值的。

// let [x = 1, y = x] = []; //1,1

// let [x = 1, y = x] = [2]; //2,2


如果数组变量的左边使用了数组变量右边,那么是找上级作用域的值,如果没有就报错(前提是用let)

let [x = y, y = 1] = []; //报错

console.log(x,y);
原文地址:https://www.cnblogs.com/MrZhujl/p/9985842.html