扩展运算符(spread operator),也称为三个点运算符(…),是在ES6中引入的一种语法。它可以用来在函数调用、数组、字符串、对象等中展开表达式。
- 函数调用中的扩展运算符:
在函数调用时,可以使用扩展运算符将数组或类数组对象展开为独立的参数传递给函数。
例如:
function sum(a, b) {
return a + b;
}
const numbers = [1, 2];
console.log(sum(...numbers)); // 输出 3
- 数组中的扩展运算符:
在数组中,扩展运算符可以将一个数组展开为多个元素。
例如:
const arr1 = [1, 2, 3];
const arr2 = [4, 5, 6];
const merged = [...arr1, ...arr2];
console.log(merged); // 输出 [1, 2, 3, 4, 5, 6]
扩展运算符也可以用于复制数组:
const arr = [1, 2, 3];
const copied = [...arr];
console.log(copied); // 输出 [1, 2, 3]
- 字符串中的扩展运算符:
在字符串中,扩展运算符可以将字符串拆分为字符数组。
例如:
const str = 'hello';
const chars = [...str];
console.log(chars); // 输出 ['h', 'e', 'l', 'l', 'o']
- 对象中的扩展运算符:
在对象中,扩展运算符用于将对象的属性和方法展开为新对象。
例如:
const obj1 = { name: 'Alice', age: 20 };
const obj2 = { ...obj1, gender: 'female' };
console.log(obj2); // 输出 { name: 'Alice', age: 20, gender: 'female' }
注意:如果对象中有相同的属性,后面的对象的属性将覆盖前面的对象属性。
总结:
扩展运算符可以用于函数调用、数组、字符串、对象中,它的作用是将表达式拆分为独立的元素,或者将多个元素合并为一个整体。这种语法可以简化代码并提高代码的可读性。