梗概
- 只要是具有迭代器的对象,都能被当成数组解构
- 可以给解构时声明的变量赋予一个默认值
- 默认值默认就是undefined
- 类似于模式匹配,可以不完全解构
- 不完全解构的时候比较符合直觉,直觉一般都能判断正确
- 也可以用把数组作为对象来解构对象object
示例
之一:综合
let [[bar|foo, [bar]] = [[2|1, [2]];
foo // 1
bar // 2
baz // 3
let [ , , third] = ["foo", "bar", "baz"];
third // "baz"
let [x, , y] = [1, 2, 3];
x // 1
y // 3
let [head, ...tail] = [1, 2, 3, 4];
head // 1
tail // [2, 3, 4]
let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []之一:不完全解构
let [x, y] = [1, 2, 3];
x // 1
y // 2
let [a, [b], d] = [1, [2, 3], 4];
a // 1
b // 2
d // 4之一:对象解构数组
child::
之一:对象解构数组
指向原始笔记的链接 let arr = [1, 2, 3]; let {0 : first, [arr.length - 1] : last} = arr; first // 1 last // 3