在 ES6 中,扩展运算符(spread operator)...
可以用于在函数调用、数组字面量或对象字面量中展开数组或对象。以下是扩展运算符的一些常见用法:
1. 在函数调用中使用扩展运算符
扩展运算符可以在函数调用时展开数组或对象,将其元素作为单独的参数传递给函数。例如:
function sum(a, b, c) {
return a + b + c;
}
const numbers = [1, 2, 3];
console.log(sum(...numbers)); // 输出 6
在这个示例中,我们定义了一个函数 sum
,它接受三个参数并返回它们的和。然后,我们定义了一个包含三个数字的数组 numbers
。在函数调用 sum(...numbers)
中,扩展运算符将数组 numbers
展开为三个单独的参数,并将它们传递给函数。
2. 在数组字面量中使用扩展运算符
扩展运算符可以在数组字面量中使用,以创建一个包含现有数组元素的新数组。例如:
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5, 6];
console.log(arr2); // 输出 [1, 2, 3, 4, 5, 6]
在这个示例中,我们首先定义了一个包含三个数字的数组 arr1
。然后,我们使用扩展运算符将 arr1
的元素展开,并将它们与新的元素一起创建一个新的数组 arr2
。
3. 在对象字面量中使用扩展运算符
扩展运算符也可以在对象字面量中使用,以创建一个包含现有对象属性的新对象。例如:
const obj1 = { a: 1, b: 2 };
const obj2 = { ...obj1, c: 3 };
console.log(obj2); // 输出 { a: 1, b: 2, c: 3 }
在这个示例中,我们首先定义了一个包含两个属性的对象 obj1
。然后,我们使用扩展运算符将 obj1
的属性展开,并将它们与新的属性一起创建一个新的对象 obj2
。
请注意,扩展运算符不会修改原始数组或对象,而是创建一个新的数组或对象。此外,扩展运算符可以与其他运算符和函数一起使用,例如 Math.max(...numbers)
或 Object.assign(target, ...sources)
。