ES6学习二(函数rest参数和扩展运算符)

本文详细介绍了ES6中的函数rest参数和扩展运算符,包括它们的形式、用途和区别。rest参数可以代替arguments对象,提供数组形式的剩余参数,常作为函数的末尾参数;扩展运算符则用于序列化函数入参,复制数组或对象,合并数组或对象,以及将字符串转为数组等,是实现某些操作的便捷方式。
摘要由CSDN通过智能技术生成

函数rest参数和扩展运算符

上一篇学习了ES6的变量以及变量的解构赋值,这次学习一些ES6的扩展方法。
函数rest参数和扩展运算符看起来比较相似,容易弄混,所以先把他们放在一起来学习。

1. 形式

首先来看,rest参数和数组或对象扩展运算符(spread)形式都是...变量名


2. rest参数

rest参数属于函数的扩展,是在函数声明时,用于获取不确定的函数参数(其实也可以在变量的解构赋值中声明变量使用)。

2.1 代替arguments对象

如果函数声明时只有一个rest参数,那个这个参数就可以代替arguments对象了。

// arguments变量的写法
function sortNumbers() {
   
  return Array.from(arguments).sort();
}
const res1 = sortNumbers(2,4,3,12,1)
console.log(res1); // [ 1, 12, 2, 3, 4 ]

// rest参数的写法
const sortNumbers = (...numbers) => numbers.sort();
const res1 = sortNumbers(2,4,3,12,1)
console.log(res1); // [ 1, 12, 2, 3, 4 ]

rest参数和arguments对象的区别:

  1. arguments对象是一个类数组对象,不能直接使用数组的方法,rest 参数搭配的变量就是一个真正的数组,即可以直接使用数组的方法。
  2. 函数的length属性是包括arguments对象的,但是不包括rest参数
function aoo(a) {
    }
function boo(arguments) {
    }
function coo(...arg) {
    }
function doo(frist, ...arg) {
    }

console.log(aoo.length); // 1
console.log(boo.length); // 1
console.log(coo.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值