JavaScript 三个点(…)是什么 您所在的位置:网站首页 店长的岗位认知三个点是什么 JavaScript 三个点(…)是什么

JavaScript 三个点(…)是什么

2024-07-11 21:57| 来源: 网络整理| 查看: 265

JavaScript 三个点(…)是什么

在JavaScript中,我们有多种方法可以将一个对象的值赋给另一个对象。有时,我们不知道要分配的确切参数数量。在这种情况下,使用 三个点 。

这些三个点被称为 展开运算符 ,它将可迭代对象(数组,字符串或对象)展开成单个值。展开运算符非常有用,它减少了需要编写的代码量,并提高了可读性。

展开运算符的语法与 剩余参数 相同,但工作方式不同。它是作为ES6 JavaScript中的一个功能引入的。

语法:

var nameOfVar = [...valueToSpread];

参数:

valueToSpread: 在这里指定要分配给新变量的可迭代对象。它可以是一个数组或字符串。

返回类型: 它返回传递对象后的参数列表。

让我们看一些例子,首先通过简单方法给对象赋值,然后使用三个点或扩展语法执行相同的操作。

示例1: 在这个例子中,我们将使用内置的concat方法连接两个数组,然后使用三个点语法执行相同的任务。

Javascript var baseArr = [1, 2, 3]; var baseArr2 = [4, 5, 6];   // Inbuilt concat method baseArr = baseArr.concat(baseArr2); console.log(baseArr);   var spreadArr = ['a', 'b', 'c']; var spreadArr2 = ['d', 'e', 'f'];   // Concatenating using three dots spreadArr = [...spreadArr, ...spreadArr2]; console.log(spreadArr);

输出:

[1, 2, 3, 4, 5, 6] ['a', 'b', 'c', 'd', 'e', 'f']

示例2: 在这个示例中,我们将使用赋值运算符和展开运算符来复制数组的内容:

JavaScript var baseArr = [1, 2, 3]; var baseArr2 = baseArr; baseArr2.push(4); console.log(baseArr2); console.log(baseArr);   var spreadArr = ['a', 'b', 'c']; var spreadArr2 = [...spreadArr]; spreadArr2.push('d'); console.log(spreadArr); console.log(spreadArr2);

输出:

[1, 2, 3, 4] [1, 2, 3, 4] ['a', 'b', 'c'] ['a', 'b', 'c', 'd']

说明: 我们可以看到,使用赋值运算符(’=’)给数组赋值并修改新数组时,旧数组也被修改了。这会导致问题,因为我们并不总是想要修改旧数组的内容,但如果我们使用展开运算符的语法来赋值并修改新数组,旧数组将保持不变。这是因为展开运算符返回的是一个新数组,而不是旧数组的引用。

示例3: 在这个例子中,我们将使用 Math.min() 方法找到一个数组的最小值:

JavaScript var baseArr = [5, 2, 7, 8, 4, 9]; console.log(Math.min(baseArr)); console.log(Math.min(...baseArr));

输出:

NaN 2

解释:math.min()方法需要一个对象列表来查找列表中的最小值,但当传入一个数组时,它会输出NaN。为了解决这个问题,我们使用了三个点的格式/扩展操作符。由于扩展操作符返回一个对象列表,因此它被方法接受并返回数组的最小元素。

例子4: 在这个例子中,我们将使用三个点将一个对象赋给另一个对象:

JavaScript const spreadObj = {     name: 'Ram',     country: 'India', };   // Cloning previous object const newObj = { ...spreadObj }; console.log(newObj);

输出:

{name: 'Ram', country: 'India'}

示例5: 在这个例子中,我们将在函数调用中使用扩展运算符。

Javascript function add(...objects){     var ans = 0;     for(var i = 0; i < objects.length; i++){         ans += objects[i];     }     console.log(ans); } add(1, 2); add(23, 45, 67, 56);

输出:

3 191

解释: 我们可以看到,在不知道要传递多少个参数的情况下,展开运算符非常有用。在这里,我们的 add 函数可以适用于任意数量的参数,因此我们不需要为不同数量的参数指定多个函数。

注意: 我们应该记住,只有可迭代的对象才能使用展开运算符进行传递。例如, 纯粹对象 不可迭代,因为它们缺少 Symbol.iterator 方法。

示例 6: 在这个示例中,我们将尝试展开一个纯粹对象。

Javascript const plainObj = { name: 'Ram' }; // Spreading non iterable object const baseArr = [...plainobj];

输出:

JavaScript 三个点(…)是什么

解释: 可以看到,在使用三个点来传播一个不可迭代的对象时会抛出错误。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有