一、数组的扩展运算符
-
1. 合并数组
let arr1 = [1, 2, 3];
let arr2 = [a, b, c];
let combined = [...arr1, ...arr2]; // [1, 2, 3, a, b, c]
-
2. 复制数组
const str1 = ['e', 'g', 'm'];
const str2 = [...str1];
console.log(str2);//['e','g','m']
// 修改 str1 不会影响 str2
str1[0] = 'new';
console.log(str1);//['new','g','m']
console.log(str2);//['e','g','m']
-
3.将数组作为函数参数传递
function myFunction(arg1, arg2, arg3) {
console.log(arg1, arg2, arg3);
}
let args = [10, 20, 30];
myFunction(...args); // 10 20 30
-
4.尾部添加元素
let baseArr = [0, 1];
let newArr = [...baseArr, 2, 3]; // [0,1,2,3]
二、对象的扩展运算符
-
1. 对象合并
可以使用扩展运算符将多个对象合并成一个对象。
const obj1 = { a: 1, b: 2 };
const obj2 = { b: 3, c: 4 };
const merged = { ...obj1, ...obj2 };
console.log(merged); // { a: 1, b: 3, c: 4 }
注意,如果对象有相同的属性,后面的对象的属性会覆盖前面的对象的属性。
-
2. 对象复制
扩展运算符可以用于创建对象的浅拷贝,即复制对象的属性到一个新的对象中。
const original = { a: 1, b: 2 };
const copy = { ...original };
console.log(copy); // { a: 1, b: 2 }
-
3. 函数参数传递
扩展运算符可以用于将对象的属性展开为函数的参数。
const params = { x: 1, y: 2 };
function foo({ x, y }) {
console.log(x, y);
}
foo(params); // 1 2