JavaScript 扩展运算符(Spread Operator)是一个三个点(...)的符号,用于将一个数组或对象展开成多个元素或属性。它可以在函数调用时将数组的元素作为单独的参数传递,或者在创建新数组或对象时合并多个数组或对象。
扩展运算符主要用于数组和对象。
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5]; // [1, 2, 3, 4, 5]
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 }; // { a: 1, b: 2, c: 3 }
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combinedArr = [...arr1, ...arr2]; // [1, 2, 3, 4, 5, 6]
const originalArr = [1, 2, 3];
const copiedArr = [...originalArr]; // [1, 2, 3]
function sum(a, b, c) {
return a + b + c;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers)); // 6
原因:扩展运算符在处理大型数组或对象时,可能会导致性能下降,因为它会创建新的数组或对象。
解决方法:
Array.prototype.concat
或 Object.assign
。// 避免不必要的展开
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combinedArr = arr1.concat(arr2); // [1, 2, 3, 4, 5, 6]
// 数组合并
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const combinedArr = [...arr1, ...arr2];
console.log(combinedArr); // [1, 2, 3, 4, 5, 6]
// 对象合并
const obj1 = { a: 1, b: 2 };
const obj2 = { c: 3, d: 4 };
const combinedObj = { ...obj1, ...obj2 };
console.log(combinedObj); // { a: 1, b: 2, c: 3, d: 4 }
// 函数参数传递
function sum(a, b, c) {
return a + b + c;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers)); // 6
希望这些信息对你有所帮助!
领取专属 10元无门槛券
手把手带您无忧上云