- 扩展运算符(Spread Operator):在函数调用和数组、对象字面量中使用扩展运算符可以将数组、对象或函数的参数展开成单个的元素序列。例如:
const arr = [1, 2, 3];
console.log(...arr); // 输出: 1 2 3
const obj = {a: 1, b: 2};
const newObj = {...obj}; // 复制对象
console.log(newObj); // 输出: {a: 1, b: 2}
2.剩余语法(Rest Syntax):在函数声明参数列表或解构赋值中使用剩余语法可以将剩余的参数或元素收集到一个数组中。例如:
function sum(...nums) {
return nums.reduce((total, num) => total + num, 0);
}
console.log(sum(1, 2, 3)); // 输出: 6
const [first, ...rest] = [1, 2, 3, 4];
console.log(first); // 输出: 1
console.log(rest); // 输出: [2, 3, 4]
- 对象展开语法(Object Spread):在对象字面量中使用扩展运算符可以将一个对象的属性展开到另一个对象中。例如:
const obj1 = {a: 1, b: 2};
const obj2 = {c: 3, ...obj1};
console.log(obj2); // 输出: {c: 3, a: 1, b: 2}