js中的... Rest参数与Spread语法

1.使用…复制数组、对象

let arr = [1, 2, 3];
let arrCopy = [...arr];

let obj = { a: 1, b: 2, c: 3 };
let objCopy = { ...obj };

之前使用:Object.assign({}, obj)

2.若 … 出现在函数参数列表的最后,那么它就是 rest 参数,它会把参数列表中剩余的参数收集到一个数组中。
eg:

function sumAll(...args) { // 数组名为 args
  let sum = 0;

  for (let arg of args) sum += arg;

  return sum;
}

3.若 … 出现在函数调用或类似的表达式中,那它就是 spread 语法,它会把一个数组展开为列表。
eg:

let arr = [3, 5, 1];
[...arr]

注.string转array的几种方法:

1.'test'.split('');
2.[...'tset']; //spread 语法
3.Array.from('test');
4.let array = [];
 for(let i of 'test'){
 	array.push(i)
 }  //for...of --ES6语法,可以遍历Array、Set、Map、String、TypedArray、arguments等可迭代对象,可以使用break、continue

Array.from 适用于类数组对象也适用于可迭代对象。
Spread 语法只适用于可迭代对象。
因此,对于将一些“东西”转换为数组的任务,Array.from 往往更通用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值