什么是扩展运算符?有什么使用场景?
扩展运算符的概念
扩展运算符(Spread Operator)是 JavaScript 中的一种语法,用三个点(...
)表示。它的主要功能是将可迭代对象(如数组、字符串、对象等)展开为独立的元素。
扩展运算符的使用场景
数组操作
-
合并数组:将多个数组合并为一个新数组。
const arr1 = [1, 2]; const arr2 = [3, 4]; const mergedArr = [...arr1, ...arr2]; // [1, 2, 3, 4]
-
复制数组:创建数组的浅拷贝。
const original = [1, 2, 3]; const copy = [...original]; // [1, 2, 3]
-
替代
apply
方法:在函数调用时展开数组作为参数。const numbers = [1, 2, 3]; Math.max(...numbers); // 3
对象操作
-
合并对象:将多个对象的属性合并为一个新对象。
const obj1 = { a: 1 }; const obj2 = { b: 2 }; const mergedObj = { ...obj1, ...obj2 }; // { a: 1, b: 2 }
-
复制对象:创建对象的浅拷贝。
const originalObj = { name: "Alice" }; const copyObj = { ...originalObj }; // { name: "Alice" }
函数参数
- 代替
arguments
:将剩余参数收集为数组。function sum(...args) {return args.reduce((acc, val) => acc + val, 0); } sum(1, 2, 3); // 6
字符串展开
- 将字符串拆分为字符数组。
const str = "hello"; const chars = [...str]; // ["h", "e", "l", "l", "o"]
注意事项
- 扩展运算符只能用于可迭代对象(如数组、对象、字符串)。
- 对象的扩展运算符是浅拷贝,嵌套对象仍会保留引用。
- 在函数参数中,扩展运算符必须放在最后。