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实现鼠标点击文本框显示隐藏提示文本
Feb 23 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
jQuery实现图片轮播效果代码(基于jquery.pack.js插件)
Jun 02 Javascript
微信小程序开发之map地图实现教程
Jun 08 Javascript
微信小程序三级联动地址选择器的实例代码
Jul 12 Javascript
使用vue-resource进行数据交互的实例
Sep 02 Javascript
vue2.0 资源文件assets和static的区别详解
Apr 08 Javascript
JavaScript实现的简单加密解密操作示例
Jun 01 Javascript
vue-router+nginx 非根路径配置方法
Jun 30 Javascript
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 jQuery
修改layui的后台模板的左侧导航栏可以伸缩的方法
Sep 10 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 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
火车头采集器3.0采集图文教程
2007/03/17 PHP
PHP Class&amp;Object -- 解析PHP实现二叉树
2013/06/25 PHP
php计算整个目录大小的方法
2015/06/19 PHP
thinkPHP5.0框架安装教程
2017/03/25 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
Jquery选择器 $实现原理
2009/12/02 Javascript
基于jquery的自定义鼠标提示效果 jquery.toolTip
2010/11/14 Javascript
11款新鲜的jQuery插件[附所有demo下载]
2011/01/24 Javascript
JS高级笔记
2011/07/13 Javascript
线路分流自动智能跳转代码,自动选择最快镜像网站(js)
2011/10/31 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
javascript中为某个元素指定事件的三种方式
2014/08/07 Javascript
分享2个jQuery插件--jquery.fileupload与artdialog
2014/12/26 Javascript
Node.js中的缓冲与流模块详细介绍
2015/02/11 Javascript
JS实现可点击展开与关闭的左侧广告代码
2015/09/02 Javascript
js判断手机号运营商的方法
2015/10/23 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
Web前端开发之水印、图片验证码
2016/11/27 Javascript
vue实现全选和反选功能
2017/08/31 Javascript
详解利用 Express 托管静态文件的方法
2017/09/18 Javascript
实现单层json按照key字母顺序排序的示例
2017/12/06 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
javascript实现简易计算器功能
2020/09/23 Javascript
让python json encode datetime类型
2010/12/28 Python
Python中is与==判断的区别
2017/03/28 Python
python绘制双柱形图代码实例
2017/12/14 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
基于python实现百度翻译功能
2019/05/09 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
市场营销专业毕业生自荐信
2013/11/02 职场文书
《菜园里》教学反思
2014/04/17 职场文书
2014年营业员工作总结
2014/11/18 职场文书
领导干部学习三严三实心得体会
2016/01/05 职场文书
《英雄联盟》2022日蚀、月蚀皮肤演示 黑潮亚索曝光
2022/04/13 其他游戏