JavaScript中的arguments对象是什么?
【JavaScript的函数参数和arguments是什么()】JavaScript的函数参数是什么?和arguments有什么联系?
JavaScrip的函数参数称为形参,实参是调用函数的时候传递的实际参数值,依次从做到右匹配函数的参数,JavaScrip的函数是Function类型,可以通过调用它的length属性获取函数的形参个数,例如函数fn.length。
当调用函数的时候,穿给函数的叫做实参,函数内部有一个arguments对象,用于保存函数的实参的相关信息,注意arguments对象不是数组,但是可以当数组使用。当调用函数传实参少于形参的时候,后面的形参变为undefined,当传实参多余形参的时候,多出的实参会保存在arguments对象中,实参在arguments对象中的所以从0开始递增,arguments.length表示实参的个数,注意,每个函数都有自己的arguments对象,不能在函数外部调用arguments对象。
下面是JavaScript使用arguments对象的实例:
var fn = function(id, name){
console.log(new Date().toLocaleString() + "" + id + ": " + name);
var length = arguments.length;
// 获取函数实参的个数
console.log(length);
// 遍历arguments中的所有实参内容
for(var i = 0;
i <
length;
i++){
console.log(arguments[i]);
}
}fn(12, "Fucntion");
console.log(fn.length);
// 获取fn函数的参数个数
console.log(fn.name);
// fn.name获取函数的名称
另外,可以使用JavaScript的arguments对象实现可变长参数的函数,可变长参数使用arguments访问所有实参进行使用,下面是一个计算任意个数值的最大值的函数:
// 可变长参数的函数
var max = function(){
if(arguments.length == 0)
return;
var maxValue = http://www.srcmini.com/arguments[0];
// 取arguments的第一个元素初始化为最大值
for(var i = 1;
i <
arguments.length;
i++){
if(maxValue <
arguments[i])
maxValue = arguments[i];
}
return maxValue;
}var maxValue = max(12, 78, 1, 6, 75, 26);
console.log(maxValue);
// => 78
推荐阅读
- vue.js框架快速入门简明教程(七)(自定义指令)
- 详解JavaScript基本数据类型和引用类型的区别、值传递和引用传递
- vue.js框架快速入门简明教程(六)(组件)
- JavaScript基础快速入门教程(八)(包装数据类型、日期对象、Math对象和全局对象)
- JavaScript基础快速入门教程(七)(数组创建、遍历数组、数据结构和算法和实例)
- JavaScript基础快速入门教程(六)(对象详解和编程实例)
- vue.js框架快速入门简明教程(五)(表单)
- vue.js框架快速入门简明教程(四)(样式绑定和事件处理器)
- JavaScript基础快速入门教程(五)(函数的定义和调用、带参函数和匿名函数)