在 JavaScript 中,三个连续的句点 … 称为 “展开运算符” (spread operator),它可以将数组或对象展开成一个列表或一组键值对。
对于数组,展开运算符可以将数组中的每个元素分别取出来,形成一个新的数组:
const arr1 = [1, 2, 3];
const arr2 = [...arr1, 4, 5, 6]; // [1, 2, 3, 4, 5, 6]
对于对象,展开运算符可以将对象中的每个键值对分别取出来,形成一个新的对象:
const obj1 = {a: 1, b: 2};
const obj2 = {...obj1, c: 3, d: 4}; // {a: 1, b: 2, c: 3, d: 4}
展开运算符还可以用于函数调用时传递参数,将一个数组或对象中的元素作为函数的参数传递:
function myFunction(x, y, z) {
console.log(x + y + z);
}
const arr = [1, 2, 3];
myFunction(...arr); // 6
需要注意的是,在 ECMAScript 6 之前,JavaScript 中没有展开运算符。