扩展运算符或 3 个点是 JavaScript 中的运算符,用于函数调用和数组/对象。 它有多种不同的用途,所以让我们看看我们如何在真实的 JavaScript 代码中使用扩展运算符。
在函数调用中
我们可以使用 JavaScript 函数调用中的 3 个点将数组转换为函数的一组参数。 让我们看一个例子。 下面,我们的数组被转换为 x、y、z 和 a 的值。
let numbers = [ 1, 2, 3, 4 ];let myFunction = function(x, y, z, a) { return x + y + z + a; }// Returns 10 myFunction(...numbers);
这可以与其他值组合,因此以下也是有效的,使用与之前相同的功能:
let numbers = [ 1, 2 ];// Returns 15 (i.e. 5 + 7 + 1 + 2) myFunction(5, 7, ...numbers);
合并数组
使用扩展运算符的另一种有用方法是合并数组。 例如,我们可以使用两个扩展运算符将两个单独的数组合并为一个新数组:
let x = [ 1, 2, 3 ]; let y = [ 4, 5, 6 ];// Returns [ 1, 2, 3, 4, 5, 6 ] let newArray = [ ...x, ...y ];
与之前类似,我们可以将它与其他值结合起来,仍然得到相同的结果:
let x = [ 1, 2 ];// Returns [] 4, 5, 1, 2 ] let newArray = [ 4, 5, ...x ];
合并对象
最后,我们可以使用扩展运算符来合并对象。 在下面的示例中,我们将两个具有键/值对的对象合并为一个对象:
let obj1 = { name: "John" }; let obj2 = { age: 114 };// Returns { name: "John", age: 114 } let newObj = { ...obj1, ...obj2 };
如果我们尝试合并两个对象并且存在重复键,则第二个对象将优先并覆盖第一个对象,如下所示:
let obj1 = { name: "John" }; let obj2 = { name: "Jake" };// Returns { name: "Jake" } let newObj = { ...obj1, ...obj2 };
这就是扩展运算符的工作原理——它们让我们可以轻松地使用数组运行函数,并且非常适合合并对象和数组。