JavaScript中 arguments 对象是比较特别的一个对象,实际上是当前函数的一个内置属性;也就是说所有函数都内置了一个 arguments 对象,arguments对象中存储了调用函数时传递的所有的实参;arguments 是一个伪数组(类数组对象),因此可以进行遍历
伪数组的特点:
-
具有
length
属性,可以通过 length 获取长度 -
按索引方式储存数据,就像数组
-
不具有数组的一般方法,例如: push , pop 等方法
注意:该属性要在函数内部使用,通过此对象获取函数调用时传的所有实参。
arguments.length
描述:
arguments.length
表示的是实际上向函数传入了多少个参数,这个数字可以比形参数量大,也可以比形参数量小(形参数量的值可以通过 Function.length
获取到)
arguments 的使用场景有很多,比如:当不确定有多少个实参传入的时候,就可以用 arguments 来获取实参的数量
示例:
// 定义函数,只设置了一个形参
function getArguments(arg1) {
// 遍历 arguments 获取的实参;arguments 不需要定义,是函数内置的
for (var i = 0; i < arguments.length; i++) {
// 控制台输出每个值
console.log(arguments[i])
}
}
// 调用函数传入了多个实参
getArguments(1, 3, 5, 'arguments', 7, {uname: '大熊'}, 9)
创建一个伪数组对象:
// 伪数组的属性名为数字(就相当于数组中的下标),所以可以通过循环获取到对应的值
var arrayFake = {
0: '品如',
1: 20,
2: 'girl',
// 为数组对象中有一个 length 属性用于设置对象中的属性个数,所以类是于 数组 可以通过 length 获得元素怒个数
length: 3
}
// 打印 lenght 属性的值
console.log('长度为:' + arrayFake.length)
// 通过循环获取对应下标的值
for (var i = 0; i < arrayFake.length; i++) {
console.log(arrayFake[i])
}