JS 展开运算符的几种使用场景

以下场景在chrome70版本可直接运行,其他版本及浏览器未做验证,可能需要Babel转换:

替换Apply的函数调用

Math.min()

// es5
var array1 = [1, 2, 3];
Math.min.apply(null, array1)
// 使用扩展运算符
var array1 = [1, 2, 3];
Math.min(...array1);

数组合并

// 数组合并
var array1 = [1, 2, 3];
var array2 = [4, 5, 6];
var array3 = [...array1, ...array2, 7, 8]; //[1,2,3,4,5,6,7,8]
array1.push(...array2 )// 当然也可以使用concat等数组合并方法,但是扩展运算符提供了一种新的方式
// 数组拷贝
var array1 = [1,2,3];
var array2 = [...array1]; 
console.log(array1 == array2) // false,但是不支持对象数组深拷贝

转换类数组为数组,比如arguments或者NodeList

// es5
var fn = function() {
  console.log(Array.prototype.slice.apply(arguments));
}
fn(1,2,3)

//扩展运算符
var fn = function() {
  console.log([...arguments]);
}
fn(1,2,3)

你可能感兴趣的:(JS 展开运算符的几种使用场景)