一、对象 (称:扩展运算符,用于取出参数对象所有可遍历属性然后拷贝到当前对象,属于深复制即新复制的数组值的改变不会影响原数组的值)
- 复制数组或类
let arr = [1, 2],
arr1 = [...arr];
console.log(arr1); // [1, 2]
// 数组含空位
let arr2 = [1, , 3],
arr3 = [...arr2];
console.log(arr3); [1, undefined, 3]
- 合并数组(或类)
console.log([...[1, 2],...[3, 4]]); // [1, 2, 3, 4]
二、解构赋值(称:剩余运算符)
let {a, b, ...rest} = {a: 10, b: 20, c: 30, d: 40};
// a = 10
// b = 20
// rest = {c: 30, d: 40}
三、函数的不定参数
不定参数用来表示不确定参数个数,形如,...变量名,由...加上一个具名参数标识符组成。具名参数只能放在参数组的最后,并且有且只有一个不定参数。
基本用法
function f(...values){
console.log(values.length);
}
f(1,2); //2
f(1,2,3,4); //4