fe-weekly-questions
fe-weekly-questions copied to clipboard
剩余参数和 arguments 对象的区别是什么?
- 剩余参数只包含那些没有对应形参的实参(可以是参数的 部分),而 arguments 对象包含了传给函数的所有实参(是参数的全部)
- arguments 对象不是一个真实的数组,而剩余参数是真实的 Array 实例 也就是说,能够在它上面直接使用所有的数组方法,比如 sort、map、forEach、pop
- arguments 对象还有一些附加的属性(如 callee 属性)
- 如果想在 arguments 对象上使用数组方法,首先要将它转换为真实的数组,比如使用 [].slice.call(arguments)
补充第四条
- Array.from(arguments)
- [... arguments]
- Array.protoType.slice.call(arguments)