个性化阅读
专注于IT技术分析

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 = 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
赞(0)
未经允许不得转载:srcmini » JavaScript的函数参数和arguments是什么?

评论 抢沙发

评论前必须登录!