2023.1.26今天我学习了如何数组的解构赋值的基本用法。
首先解构是按照一定模式从数组和对象中提取值,然后对变量进行赋值。
以前的变量赋值:
let a = 1;
let b = 2;
let c = 3;
现在的变量赋值:
let [a,b,c] = [1,2,3];
上面的代码表示可以从数组中提取值,按照对应位置对变量赋值,这种写法属于“模式匹配”,只要等号两边的模式相同,左边的变量就会被赋予对应的值。
嵌套赋值:
let [foo,[bar],baz] = [1,[[2],3]];
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
报错:
如果等号的右边不是数组,就会报错。
let [foo] = 1;
let [foo] = false;
let [foo] = NaH;
let [foo] = undefined;
let [foo] = null;
let [foo] = {};