// 数组模型的解构
const arr = ['一', '二', '三']
// 最基本的
let [a, b, c] = arr
console.log(a, b, c); // 一 二 三
// 可以不和arr里面数量一致
let [a1, b1] = arr
console.log(a1, b1); // 一 二
// 可忽略
let [a2, , c2] = arr
console.log(a2, c2); // 一 三
// 可嵌套
let [a3, [[b3], c3]] = [1, [[2], 3]];
console.log(a3, b3, c3); // 1 2 3
// 不完全解构 (当需要赋值的对象有默认值时,
//且匹配的结果为undefined时,会触发返回默认值)
let [a4 = 4, b4] = [];
console.log(a4, b4); // 4 undefined
let [a44 = 2] = [undefined]; // a = 2
console.log(a44); // 2
// 剩余运算符
let [a5, ...b5] = [1, 2, 3, 4]
console.log(a5, b5); // 1 [2, 3, 4]
// 解构赋值字符串
let [a6, b6, c6, d6, e6] = 'hello'
console.log(a6, b6, c6, d6, e6); // h e l l o
// a 与 b 匹配结果为 undefined ,触发默认值:a = 3; b = a =3
let [a7 = 3, b7 = a7] = []; // a = 3, b = 3
// a 正常解构赋值,匹配结果:a = 1,b 匹配结果 undefined ,触发默认值:b = a =1
let [a8 = 3, b8 = a8] = [1]; // a = 1, b = 1
// a 与 b 正常解构赋值,匹配结果:a = 1,b = 2
let [a9 = 3, b9 = a9] = [1, 2]; // a = 1, b = 2
ES6 数组的解构赋值
于 2023-04-21 00:04:55 首次发布