如何在Ecma 6中使用spread(...)?

时间:2018-06-26 11:58:10

标签: ecmascript-6

如果有人可以向我解释如何使用spread,那么最好在何时使用spread作为示例。

1 个答案:

答案 0 :(得分:4)

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中使用点差(...)有哪些不同的方式?

用于:

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()

..如上图所示。