JavaScript函数中内置对象argarguments的用法及如何创建一个伪数组
JavaScript中arguments是一个比较特殊的对象,实际上它也是函数内置的一个属性,也就是说所有函数都内置了一个arguments对象,arguments对象中存储了调用函数是传递的所有的实参,arguments是一个伪数组(类数组对象;因此可以遍历)。
伪数组的特点:
1、具有length属性,可以通过length获取长度;
2、不具有数组的一般方法,例如:push 、pop、shift等;
3、按索引方式存储数据。
注意:该属性要在函数内部使用。通过此对象获取函数调用时传的所有实参 。
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(11, 22, 33, 'arguments', 66, { sName: '诶嘿' }, 88)
创建一个伪数组对象:
// 伪数组的属性名为数字(就相当于数组中的下标),所以可以通过循环获取到对应的值
var getArray = {
0: 'cc',
1: 20,
2: 'boy',
// 为数组对象中有一个 length 属性用于设置对象中的属性个数,所以类是于 数组 可以通过 length 获得元素怒个数
length: 3
}
// 打印 lenght 属性的值
console.log('长度为:' + getArray.length)
// 通过循环获取对应下标的值
for (var i = 0; i < getArray.length; i++) {
console.log(getArray[i])
}