这个问题其实考察的是arguments对象,函数参数实际上是被保存在一个被称为arguments的类似于数组的对象当中。
MDN中是这样说的:
arguments
对象是所有(非箭头)函数中都可用的局部变量。你可以使用arguments
对象在函数中引用函数的参数。此对象包含传递给函数的每个参数,第一个参数在索引0处。
arguments
对象不是一个Array
。它类似于Array
,但除了length属性和索引元素之外没有任何Array
属性。例如,它没有 pop 等方法。
好了,了解了 arguments,问题就解决了一大半,下面是实现代码:
function unknownNumParam() {
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
unknownNumParam(1, 2, 3, 4, 5);