一:arguments是什么?
在js中,每一个函数都会内置一个arguments对象。
百度百科中这样介绍:arguments对象的介绍
二:为什么要使用argument对象?
因为在实际开发中,我们并不知道用户传入的实际参数的个数,这样在方法的声明上,也无法确定形式参数的个数。面对这样的情况:我们可以用arguments对象获取所有的实际参数。
function fun2(){
console.log(arguments);
}
fun2(1,2,3,4,5);
根据运行结果我们发现:arguments对象展现的形式和数组一样。
1.结论:arguments对象是一个伪数组。因为arguments对象具备数组长度属性length;而且还可以通过索引的方式存储和访问数据。
function fun1(){
console.log(arguments);
console.log(arguments[0]);
console.log(arguments.length);
// 循环获取伪数组中的值
for (var i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
// console.log(fun1(1,2,3,4)); // 函数没有返回值,则返回undefined
fun1(1,2,3,4);
2.伪数组的特点:
- 具备数组长度属性length。
- 可以通过索引的方式存储和访问数据。
- 不具有数组的一些其它方法 pop()、push()。
三:arguments对象的使用
1.利用函数求任意个数的最大值
function getMax(){
// 由于不知道用户传入的实参个数,所以用到arguments对象
var max = arguments[0];
for (var i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
console.log(getMax(1,2,3,4,5));
console.log(getMax(1,25,36,88,99));
console.log(getMax(1,35,66,88,41,20));