arguments
从使用场景?,案例?三个方面聊聊arguments…
arguments是实参,他的值是伪数组,那么什么是伪数组呢?
- 具有数组的length长度属性;也就是可以通过arguments.length来获取数组的长度(重点)
- 是按照索引的方式存储的,也就是说:访问第一个实参arguments[0];
- 不具有数组的许多方法,比如pop,push,shift,unshift等…
arguments 的使用场景:
- 必须在函数中使用,并且代表的是实参列表
- 我们都知道一点:如果传入的实参个数大于形参个数,这个时候会造成数据丢失…;另外如果实参个数小于形参个数,就是显示各种异常.
- 这也就体现了使用arguments的好处:在不知晓形参列表个数的时候,可以使用arguments在函数内部传实参,并且不影响程序的运行…
案例实现一下:(无形参,传任意数量实参)
需求:(利用函数求任意数量的最大值)
假如输入:1, 5, 3, 54, 8, 5 =>> 54
<script>
// 利用函数求任意数量的最大值
function max_num() {
var max = arguments[0];
for (var i = 1; i < arguments.length; i++) {
if (max < arguments[i]) {
max = arguments[i];
}
}
return max;
}
var max = max_num(1, 5, 3, 54, 8, 5);
alert('待比较最大值的数:1, 5, 3, 54, 8, 5' + '\n' + '最大值为:' + max);
</script>
tips:你也可以把实参改成弹窗输入语句,这样你就可以随意比较,不用进入源代码改实际参数.