在不知道有多少参数的情况下,这个时候就可以用arguments来获取,JS中arguments是当前函数的内置对象。函数中的一个arguements对象,而arguements对象中存储了传送过来的所有实参。
案例:
<script>
function arr() {
console.log(arguments);//arguments中存储了传送过来的arr(1,2,3,4)所有实参
}
arr(1,2,3,4);
</script>
运行截图:
在存储的过程中arguments变成了一个数组。具有[ ]。通过上面的截图可以看出它具有数组的length 和索引。(以下可以通过代码验证)其实arguments所展示的是一个伪数组,可以进行遍历。所以我们要注意是伪数组不具有数组的pop,push等方法。
<script>
function arr() {
console.log(arguments);
console.log(arguments.length);
console.log(arguments[2]);
}
arr(1,2,3,4);
</script>
运行截图:
arguments对象遍历:
<script>
function arr() {
//console.log(arguments);
//console.log(arguments.length);
//console.log(arguments[2]);
for (i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
arr(1,2,3,4);
</script>
运行截图:
总结:运用了arguments 不管arr()中存储了多少个值都会接受过去。就可以不用arr()中的形参。需要注意的是只有函数才有arguments对象,就是声明了函数,都会有,相当于内置功能。