JavaScript中利用arguments对象获取函数参数个数与值

作者:异步漫步

时间:2026-10-28

浏览:350

本文介绍JavaScript中函数传参的灵活性,对比PHP的严格匹配。重点讲解arguments对象的特性,演示如何通过它获取实参个数及具体值。通过示例展示在形参少于或多于实参时的表现,以及利用arguments实现不定数量数字的最小值计算逻辑。

文章目录

JavaScript函数传参的灵活性

JavaScript与PHP在函数参数传递机制上存在差异。PHP要求形式参数与实际参数的数量必须严格匹配,而JavaScript则更为灵活,允许传入任意数量的参数,无论实参数量少于还是多于形参,均不会引发错误。

当实际传入的参数数量超过函数定义的形式参数数量时,程序不会报错。


function say(a){
   alert(a); 
}
 
say('琼台博客','WEB技术博客');

运行上述代码后的输出情况。

JavaScript函数传参的灵活性

接下来考察形式参数数量多于实际传入参数数量的情况。


function say(a,b){
   alert('a 的值是 '+a+'\nb 的值是 '+b); 
}
 
say('琼台博客');

该场景下的运行输出结果。

JavaScript函数传参的灵活性

变量a接收第一个实参“琼台博客”,而变量b由于没有对应的实参传入,其值为undefined。

arguments对象的使用

关于arguments对象的说明。

在复杂的程序设计中,往往不预先指定参数个数,而是采用灵活的处理方式。函数内部内置了一个名为arguments的数组对象,专门用于存储所有传入的实际参数。通过访问arguments对象,可以获取传入参数的总数以及每个参数的具体值。


function arg(){
    var str = '总共传了'+arguments.length+'个参数\n';
    for(var i=0;i<arguments.length;i++){    
        str += '第'+(i+1)+'个参数值:'+arguments[i]+'\n'; 
    }
    alert(str);
}
arg('琼台博客','PHP博客','WEB技术博客');

运行上述代码后的输出情况。

JavaScript函数传参的灵活性

在上述示例中,定义的函数arg并未指定任何形式参数,而是直接使用arguments对象来接收所有传入的实参,这种方式提供了极高的灵活性。

利用arguments计算最小值示例

例如,可以利用arguments对象来计算一组数字中的最小值,无论这组数字包含多少个元素。具体代码实现如下:


function arg(){
    var tmp = 0, str = '在 ';
    for(var i=0;i<arguments.length;i++){    
        for(var g=0;g<arguments.length;g++){
            if(arguments[g]<arguments[i]){
               tmp = arguments[g]; 
            } 
        }
       str += arguments[i]+',';
    }
    alert(str.substr(0,str.length-1)+' 里最小的值是 '+tmp);
}
arg(200,100,59,3500);

运行包含200、100、59、3500四个数值的比较结果。

JavaScript函数传参的灵活性

随后增加两个数值,分别为5和60。


function arg(){
    var tmp = 0, str = '在 ';
    for(var i=0;i<arguments.length;i++){    
        for(var g=0;g<arguments.length;g++){
            if(arguments[g]<arguments[i]){
               tmp = arguments[g]; 
            } 
        }
       str += arguments[i]+',';
    }
    alert(str.substr(0,str.length-1)+' 里最小的值是 '+tmp);
}
arg(200,100,59,3500,5,60);

运行包含200、100、59、3500、5、60共六个数值的比较结果。

JavaScript函数传参的灵活性

对比两次运算结果可知,无论传入多少个数字,程序均能正确比对并返回最小值。arguments对象通常应用于实参数量不确定的场景,例如上述例子中,既可以传入5个数字进行比较,也可以传入100个数字进行比较。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章