JavaScript中使用arguments获得函数传参个数实例


Posted in Javascript onAugust 27, 2014

JS与PHP在函数传参方面有点不同,PHP形参与实参个数要匹配,而JS就灵活多了,可以随意传参,实参比形参少或多都不会报错。

实参比形参多不会报错

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

执行结果

JavaScript中使用arguments获得函数传参个数实例

我们再来看看形参比实参多的结果

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

执行结果

JavaScript中使用arguments获得函数传参个数实例

a 对应第一个实参“琼台博客”,b 没有对应的实参所以值为undefined

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中使用arguments获得函数传参个数实例

在以上例子中,我们定义函数arg并没有给它指定形参,而是使用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中使用arguments获得函数传参个数实例

我们在加入两个数,分别是 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获得函数传参个数实例

根据两次运算结果,我们发现无论我们传进多少个数字,都能正确比对结果。arguments一般用在实参个数不定的地方,比如上边的例子,你可以传5个数进去比较,也可以传100个数进去比较都可以。

Javascript 相关文章推荐
使用JQuery和CSS模拟超链接的用户单击事件的实现代码
May 23 Javascript
jquery隐藏标签和显示标签的实例
Nov 11 Javascript
js中一维数组和二位数组中的几个问题示例说明
Jul 17 Javascript
JS面向对象基础讲解(工厂模式、构造函数模式、原型模式、混合模式、动态原型模式)
Aug 16 Javascript
javascript中2个感叹号的用法实例详解
Sep 04 Javascript
用C/C++来实现 Node.js 的模块(二)
Sep 24 Javascript
基于jquery固定于顶部的导航响应浏览器滚动条事件
Nov 02 Javascript
浅谈jquery中delegate()与live()
Jun 22 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
Jul 09 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
AngularJs表单校验功能实例代码
Feb 09 Javascript
微信小程序全选多选效果实现代码解析
Jan 21 Javascript
JavaScript中输出标签的方法
Aug 27 #Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
Aug 27 #Javascript
JavaScript实现的使用键盘控制人物走动实例
Aug 27 #Javascript
JavaScript截取字符串的2个函数介绍
Aug 27 #Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
Aug 27 #Javascript
jQuery中的read和JavaScript中的onload函数的区别
Aug 27 #Javascript
javascript实现的一个随机点名功能
Aug 26 #Javascript
You might like
php缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
PHP mysqli_free_result()与mysqli_fetch_array()函数详解
2016/09/21 PHP
javascript 对象比较实现代码
2009/04/27 Javascript
JavaScript获取onclick、onchange等事件值的代码
2013/07/22 Javascript
深入理解JavaScript系列(37):设计模式之享元模式详解
2015/03/04 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
jQuery使用$获取对象后检查该对象是否存在的实现方法
2016/09/04 Javascript
如何解决IONIC页面底部被遮住无法向上滚动问题
2016/09/06 Javascript
JS使用正则实现去掉字符串左右空格的方法
2016/12/27 Javascript
详解如何在vue中使用sass
2017/06/21 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
[58:29]DOTA2-DPC中国联赛 正赛 Phoenix vs XG BO3 第一场 1月31日
2021/03/11 DOTA
python3 pillow生成简单验证码图片的示例
2017/09/19 Python
python使用xpath中遇到:到底是什么?
2018/01/04 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Python 一句话生成字母表的方法
2019/01/02 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
python实现证件照换底功能
2019/08/20 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
快速解决pymongo操作mongodb的时区问题
2020/12/05 Python
DELPHI面试题研发笔试试卷
2015/11/08 面试题
环境保护建议书
2014/08/26 职场文书
党员四风剖析材料
2014/08/27 职场文书
群众路线教育实践活动民主生活会个人检查对照思想汇报
2014/10/04 职场文书
慰问信格式
2015/02/14 职场文书
药品开票员岗位职责
2015/04/15 职场文书
蜗居观后感
2015/06/11 职场文书
幼儿园见习总结
2015/06/23 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
2016年党员公开承诺书格式范文
2016/03/24 职场文书
详解CSS3浏览器兼容
2022/12/24 HTML / CSS