数组的解构赋值
let [a, b, c] = [1, 2, 3];
let [foo, [[bar], baz]] = [1, [[2], 3]];
let [ , , third] = ["foo", "bar", "baz"];
let [x, y, ...z] = ['a'];
x // "a"
y // undefined
z // []
这样的写法属于模式匹配,要是没有匹配到,返回undefined
不完全解构,也能成功
set结构也能使用数组解构
事实上,只要某种数据结构具有 Iterator 接口,都可以采用数组形式的解构赋值。
默认值
当let的变量传入的值为undefined时,这里的比较是===比较,所以传入null变量不会等于默认值,而传入undefined变量会等于默认值
例: