arguments
对象是 JavaScript 中的一个特殊对象,它包含了函数被调用时传入的所有参数。arguments
对象是一个类数组对象,它有一个 length
属性和按数字索引的元素。
每个函数在执行时都会自动创建一个 arguments
对象。我们可以通过arguments去访问参数。
function exampleFn(a, b, c) {console.log(arguments[0]); // 访问第一个参数 ,aconsole.log(arguments.length); // 访问参数的数量, 3console.log(arguments); // 访问整个 arguments 对象
}exampleFn(1, 2, 3);
arguments
对象不是一个真正的数组,而是一个类数组对象。它没有数组特有的方法,如 map
或 forEach
。如果需要对 arguments
进行数组操作,可以将其转换为数组。
//方法1
const argsArray = Array.from(arguments); // 将 arguments 转换为数组
//方法2
const argsArray = [...arguments]; // 将 arguments 转换为数组
不过在现代 JavaScript 中,更推荐使用剩余参数去获取函数的参数。
function exampleFn(...args) {console.log(args); // args 是一个包含所有传入参数的数组,[1, 2, 3, "four"]console.log(args[0]); // 访问第一个参数,1console.log(args.length); // 访问参数的数量,4
}exampleFn(1, 2, 3, "four");
用剩余剩余参数获取的是一个真正的数组,因此可以使用数组的方法。
function exampleFn(...args) {// args 是一个真正的数组console.log(args);//[1, 2, 3, 4]// 使用 map 方法对每个参数进行操作const squaredValues = args.map(value => value * value);console.log(squaredValues);// [1, 4, 9, 16]
}exampleFn(1, 2, 3, 4);