什么是展开运算符 (Spread Operator)?

推荐答案

展开运算符 (...) 是 ECMAScript 6 (ES6) 引入的一个语法特性,它允许将一个可迭代对象(如数组、字符串等)在函数调用或数组构造时展开为单个元素。展开运算符的主要用途包括:

  1. 函数调用时展开数组:将数组的元素作为单独的参数传递给函数。
  2. 数组字面量中展开数组:将数组的元素插入到另一个数组中。
  3. 对象字面量中展开对象:将对象的属性复制到另一个对象中。

本题详细解读

1. 函数调用时展开数组

在函数调用时,展开运算符可以将数组的元素作为单独的参数传递给函数。例如:

在这个例子中,...numbers 将数组 [1, 2, 3] 展开为 1, 2, 3,然后作为参数传递给 sum 函数。

2. 数组字面量中展开数组

在数组字面量中,展开运算符可以将一个数组的元素插入到另一个数组中。例如:

在这个例子中,...arr1...arr2 将两个数组的元素展开并合并到一个新的数组中。

3. 对象字面量中展开对象

在对象字面量中,展开运算符可以将一个对象的属性复制到另一个对象中。例如:

在这个例子中,...obj1obj1 的属性展开并复制到 obj2 中。

4. 注意事项

  • 展开运算符只能用于可迭代对象(如数组、字符串等)和对象。
  • 在对象字面量中使用展开运算符时,如果存在同名属性,后面的属性会覆盖前面的属性。

在这个例子中,obj1b 属性覆盖了 obj2b 属性。

纠错
反馈