1. 引用赋值 =
将变量指向新的引用/地址空间;多个变量引用|指向同一块内存
变量对内存数据的修改会影响到另外一个变量
变量重新赋值时,会丢失原来的内存 - 指向变了
let arr0 = [1, 2];
let arr1 = arr0;
arr1.push(3)
arr0 = [1, 3];//指向别的内存
2. 解构赋值 []
一次性把数组元素赋值给多个变量
let [a, b] = [1, 3];
指定位置赋值 - 获取最后一个
let [, , , , a] = [1, 2, 3, 4, 5];
//a=5
交换赋值
[a, b] = [b, a];
默认赋值 - 位置要匹配
let [name, age = 18, gender] = ['gl', , 'male']
let [name, age = 18] = ['gl']
3. 扩展运算符 spread operator ...
将数组各项展开,特别适合数组复制
let a = [1, 2, 3];
let b = [...a];
...剩余赋值 - 第1个给a,其它给rest;剩余属性必须是模式中的最后一个,并且不能有尾随逗号
let [a, ...rest] = [1, 2, 3, 4, 5]
//a=1
//rest=[2,3,4,5]