【问题标题】:how to use spread(...) in ES6?如何在 ES6 中使用 spread(...)?
【发布时间】:2018-06-26 11:58:09
【问题描述】:

如果有人可以向我解释如何使用spread,什么时候使用spread 会很棒。

【问题讨论】:

  • 嗨,我们叫它
  • 查看链接。 ... 不是一回事,就像 ({ 没有单一的含义/目的。它们的含义取决于它们所使用的上下文。它们是其他语法(数组文字、函数调用等)的一部分。查看这些构造的文档。你的问题类似于:“解释如何使用()”,没有多大意义。

标签: javascript reactjs ecmascript-6


【解决方案1】:

spread operator(不要与rest parameters 混淆)的作用类似于apply()

它允许您调用一个函数,将数组的参数作为单个值传递。

举个例子:

var myArray = [5, 10, 50];
Math.max(myArray);    // Error: NaN
Math.max.apply(Math, myArray);  

Math.max() 方法不支持数组;它只接受数字。将数组传递给 Math.max() 函数时,会引发错误。但是当使用 apply() 方法时,数组是作为单独的数字发送的,所以 Math.max() 方法可以处理它。

使用扩展运算符,您不再需要使用apply() 方法,并且可以轻松地将表达式扩展为多个参数:

var myArray = [5, 10, 50];
Math.max(...myArray);    // 50

更容易写,更容易阅读。

在 Ecma 6 中使用 spread(...) 的不同方法是什么?

适用于:

1.组合数组

var arr1 = [1, 2, 3]; var arr2 = [4, 5, 6];

arr1.push(...arr2)

2。复制数组

而不是使用 slice()

var arr1 = [1, 2, 3, 4, 5, 6];
var a = arr1.slice();

你可以:

var a = [...arr1]

3.调用函数而不是使用apply()

..如上所示。

【讨论】:

  • 请不要称其为传播运营商。它不是运营商。第 1 点和第 3 点也是一样的。
  • 同意。不久前我读了你的回答。参考:“缺乏正式名称可能是人们开始使用“传播运算符”的原因。我可能会称之为“传播参数”。是的。
猜你喜欢
  • 2018-01-22
  • 1970-01-01
  • 2019-07-13
  • 2020-06-21
  • 2017-08-28
  • 1970-01-01
  • 2020-11-10
  • 2015-11-01
相关资源
最近更新 更多