实际上,数组本质上就是一个对象,只不过这个对象的属性名是数字字符串,仅此而已。要解构数组可以用类似对象的方式来做。
js
const arr = [1,2,3,4];
const {
0:a,
1:b,
2:c
} = arr;
console.log(a,b,c);这里实际上就是在用解构对象的方式解构数组,这里有一点不一样,由于数字是不能作为标识符的,或者说变量名,所以在使用这种方式解构数组的时候,必须加上别名。
但是这种方式其实也并不方便,于是 JS 提供了另一种专门用来解构数组的方式
js
const arr = [1,2,3,4];
const [a,b,c] = arr;这种方式和前面那种方式,从效果上是完全等价的,我们中间也可以留空。
js
const arr = [1,2,3,4];
const [a, , ,b] = arr;
console.log(a,b);//1,4同样,也可以赋默认值
js
const arr = [1,2,3];
const [a,b,,c = 4] = arr;
console.log(a,b,c);//1,2,4也可以嵌套解构
js
const arr = [1,2,["a","b"]];
const [ , , [ , a]] = arr;
console.log(a);//"b"数组和对象还可以嵌套解构
js
const arr = [1,2,{test:"test"}];
const [ , , { test }] = arr;
console.log(test);//test同样,数组也可以使用类似的剩余参数的方式收集剩余内容。
js
const arr = [1,2,3,4,5,6];
const [a,b,...nums] = arr;
console.log(a,b,nums);//1,2 [3, 4, 5, 6]交换两个变量
如果我们要交换两个变量,在以前大多数时候是要借助第三个变量的,但是现在我们有更加方便的写法
js
let a = 1,b=2;
[a,b] = [b,a];