前言
初学者时候,大家一定会想过这样一个想法,一个参数e,在传参时候,希望能把多余参数一起结合到e上按结构赋值,无论多少个参数都可以获取,然后博主学习到了es6函数环节发现了一种新参数叫rest,他的作用是自动获取剩余没有赋值对象的多余参数,由此达到无限参数思想。
rest介绍
rest参数是es6语法开始引入的新变量参数,它的作用是把方法调用时候传入参数,无其他可以赋值对象Parameters(显式参数),
多余出来参数会全都赋值到rest参数上,他的数据类型是一个数组,也就是说,他是以数组形式保存的
应用
rest使用形式为function(…value);,下面是一个简单的例子
function rest (...value) {
let a = ''
console.log(value) //打印出来是一个数组
setTimeout(() => { //通过循环就能把rest参数都迭代出来
for(let i of value){
a += i
}
console.log(a)
}, 500);
}
rest('1','2','3')
//输出结果
//['1','2','3']
//123
注意使用rest的一个错误写法,rest参数虽然自动获取了没有设置显式参数位置的参数值,不过如果在rest后面加个显式参数就会导致rest语法报错。
function rest (...value,e) {
rest('1','2','3') //报错信息: Uncaught SyntaxError: Rest parameter must be last formal parameter
正确添加rest和别的参数的用法
function rest (e,...value) {
rest('这不会存储到数组,是e的值','1','2','3')
//console控制台输出如下
//这不会存储到数组,是e的值 (3) ["1", "2", "3"]
//123
结束。