浅谈ES6中的rest参数

rest参数的形式为:...变量名

rest参数用于获取函数的多余参数,这样就可以用rest参数代替用arguments对象了。rest参数搭配的变量是一个数组,该变量将多余的参数放入数组中。

rest参数和arguments对象的区别:
  1. rest参数只包含那些没有对应形参的实参;而arguments对象包含了传给函数的所有实参。
  2. arguments对象不是一个真实的数组;而rest参数是真实的Array实例,能够直接使用所有的数组方法。
  3. rest参数之后不能再有其他参数(即只能是最后一个参数),否则会报错。
rest参数使用场景,主要是处理不定数量参数
// arguments变量的写法
function sortNumbers() {
  return Array.prototype.slice.call(arguments).sort();
}

// rest参数的写法
const sortNumbers = (...numbers) => numbers.sort();

// 传递给add函数的一组参数值,被整合成了数组values
function add(...values) {
  let sum = 0;
  for (var val of values) {
    sum += val;
  }
  return sum;
}
add(1, 2, 3) // 6

function f(a, ...b, c) { ... } // 报错(rest参数只能是最后一个参数)

复制代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值