arguments又叫做剩余形参,它的作用其实是将函数中的形参通过调用arguments对象而形成一个参数集合,
以下面的例子为例
我们给fn函数传入参数并且打印arguments
我们会发现arguments其实是一个对象,这个对象包含了我们传进来的所有参数,然而,arguments并不是普通的对象,因为普通的对象并没有length,而arguments对象却可以通过arguments.length来获取长度,所以他又叫做类数组对象.以上图为例 ,我们打印出的arguments.length为4.
arguments在js刚出现就可以应用了,但是,由于早期js的一些历史遗留问题,arguments效率很低并且不容易优化,所以在正式项目中不会使用,而是用扩展运算符(...arg)来代替.