注意rest参数是参数不是数组
其实也没啥分享的就是自己犯下的一个小小的错误
连续的犯了好几次,就想写个话题提醒一下,估计大部人人不会犯错,不过给初学者说一下
rest参数是参数不是数组,
function age (...a){
console.log(a[0])
}
age(参数1,参数2)
注意这里当声明rest参数使用…+参数名称,当调用的时候是使用的参数调用的,rest 参数就是arguments的作用,调用函数的时候一定是参数而不是传入一个数组,如果是像传入一个数组的话就应该使用解构赋值:
function age1 ([a,b]) {
console.log(a)
}
age1([1,2])
如果使用解构赋值了那么相应的是数组,函数调用的就传入一个数组,是对象的话就传入对象age2({a=2,b})这种即可
还有个 … 这个单独使用叫做扩展运算符,它跟rest参数是相对应的通俗点 res参数是指将一些参数汇集成一个数组,然而扩展运算符就是将数组变成一个一个的参数,这在数组的合并,将数组改变为参数,(比如说 push,只能接受参数不能接受数组就可以使用…[])
4 回复
表达有一些问题,看的有点乱…看这里 Rest parameters
就是把非单独命名参数作为一个数组实例供函数内部访问,文档中特意和arguments
进行了区分
@DevinXian嗯我看了,总体来说argumens包括了有没有形参的所有实参,然后rest只是说没有形参的实参,另外rest的确免除了转换为数组的麻烦,因为本来就是数组**.ps :** 多谢指出我的不足和错误。🙏