JS中的扩展运算符(...)和剩余运算符(...)


一、概念

在JS中,扩展运算符(spread)是三个点 (...) ,剩余运算符(rest)也是三个点 (...)

二、扩展运算符

扩展运算符的主要作用是将一个数组转为用逗号分隔的参数序列,它好比 rest 的逆运算

//传递数据代替多个字符串的形式
function  test(a,b,c){
    
    
  console.log(a); // 1
  console.log(b); // 2
  console.log(c); // 3
}

var arr = [1, 2, 3];
test(...arr);

//将一个数组插入到另一个数据中
var arr1 = [1,2,3];
var arr2 = [...arr1, 4, 5, 6];
console.log(arr2); // [1, 2, 3, 4, 5, 6]

//字符串转数据
var str = 'hello';
var arr3 = [...str];
console.log(arr3); // ["h", "e", "l", "l", "o"]

三、剩余运算符

把用逗号隔开的值序列组合成一个数组

//当函数参数个数不确定时,用 rest运算符
function f1(...args) {
    
    
  console.log(args); // [1,2,3]
}

f1(1,2,3);

//当函数参数个数不确定时的第二种情况
function f2(item, ...arr) {
    
    
  console.log(item); // 1
  console.log(arr);  // [2,3]
}
f2(1, 2, 3);

//rest运算符配合 解构使用
let [a,...temp]=[1, 2, 4];
console.log(a);    // 1
console.log(temp); // [2,4]

四、总结

扩展运算符(spread)用三个点号表示,功能是把数组或类数组对象展开成一系列用逗号隔开的值。

剩余运算符(rest)也是三个点号,不过其功能与扩展运算符恰好相反,把逗号隔开的值序列组合成一个数组。

当三个点(…)在等号左边,或者放在形参上,为 rest 运算符

当三个在等号右边,或者放在实参上,是 spread运算符

或者说:放在被赋值一方是rest 运算符。放在赋值一方式 spread运算符。


五、参考资料

数组的扩展 - ECMAScript 6入门

ES6中扩展运算符(spread)和剩余运算符(rest)详解 - 简书

猜你喜欢

转载自blog.csdn.net/weixin_43974265/article/details/113030814