JavaScript的函数参数和arguments是什么()

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

    推荐阅读