在 JavaScript 中,...
是一种被称为扩展运算符(spread operator)和剩余参数(rest parameters)的语法糖,具体用法取决于上下文:
-
扩展运算符(Spread Operator):
扩展运算符可以将数组或对象的元素展开。它通常用于复制数组/对象,合并数组/对象,或将数组/对象的元素作为参数传递给函数。
例子:
-
复制数组:
const arr1 = [1, 2, 3]; const arr2 = [...arr1]; console.log(arr2); // 输出 [1, 2, 3]
-
合并数组:
const arr1 = [1, 2, 3]; const arr2 = [4, 5, 6]; const combined = [...arr1, ...arr2]; console.log(combined); // 输出 [1, 2, 3, 4, 5, 6]
-
对象的扩展:
const obj1 = { a: 1, b: 2 }; const obj2 = { c: 3, d: 4 }; const combined = { ...obj1, ...obj2 }; console.log(combined); // 输出 { a: 1, b: 2, c: 3, d: 4 }
-
函数调用时展开数组:
function sum(x, y, z) { return x + y + z; } const numbers = [1, 2, 3]; console.log(sum(...numbers)); // 输出 6
-
-
剩余参数(Rest Parameters):
剩余参数用于函数定义中,用于将不确定数量的参数表示为一个数组。它常用于处理变长参数列表的函数。
例子:
-
函数参数:
function sum(...numbers) { return numbers.reduce((total, num) => total + num, 0); } console.log(sum(1, 2, 3)); // 输出 6 console.log(sum(1, 2, 3, 4, 5)); // 输出 15
-
解构赋值:
const [first, ...rest] = [1, 2, 3, 4]; console.log(first); // 输出 1 console.log(rest); // 输出 [2, 3, 4]
-
...
运算符在现代 JavaScript 编程中非常有用,因为它使代码更加简洁和易读。