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 相关文章推荐
ExtJS GTGrid 简单用户管理
Jul 01 Javascript
jquery lazyload延迟加载技术的实现原理分析
Jan 24 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
jquery实现图片水平滚动效果代码分享
Aug 26 Javascript
jQuery复制表单元素附源码分享效果演示
Sep 30 Javascript
jQuery版本升级踩坑大全
Jan 12 Javascript
JavaScript中各种引用类型的常用操作方法小结
May 05 Javascript
最棒的Angular2表格控件
Aug 10 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
Nov 07 Javascript
vue使用el-upload上传文件及Feign服务间传递文件的方法
Mar 15 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
快速了解Vue父子组件传值以及父调子方法、子调父方法
Jul 15 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
第十二节 类的自动加载 [12]
2006/10/09 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
offsetParent 算法分析
2010/04/05 Javascript
关于jQuery新的事件绑定机制on()的使用技巧
2013/04/26 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
AngularJs表单验证实例详解
2016/05/30 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
老生常谈的跨域处理
2017/01/11 Javascript
jacascript DOM节点——元素节点、属性节点、文本节点
2017/04/18 Javascript
js表单序列化判断空值的实例
2017/09/22 Javascript
使用JS判断移动端手机横竖屏状态
2018/07/30 Javascript
微信小程序支付PHP代码
2018/08/23 Javascript
微信小程序云开发实现数据添加、查询和分页
2019/05/17 Javascript
layer iframe 设置关闭按钮的方法
2019/09/12 Javascript
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
使用python实现快速搭建简易的FTP服务器
2018/09/12 Python
Python 中的lambda函数介绍
2018/10/10 Python
谈一谈基于python的面向对象编程基础
2019/05/21 Python
opencv python 图片读取与显示图片窗口未响应问题的解决
2020/04/24 Python
HTML5 canvas实现移动端上传头像拖拽裁剪效果
2016/03/14 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
试述DBMS的主要功能
2016/11/13 面试题
退伍老兵事迹材料
2014/01/31 职场文书
大学生简历求职信
2014/06/24 职场文书
本科毕业生应聘求职信
2014/07/06 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
幼儿园老师新年寄语2015
2014/12/08 职场文书
倡议书范文大全
2015/04/28 职场文书
大国崛起观后感
2015/06/02 职场文书
小学教师读书笔记
2015/07/01 职场文书
幼儿园园长六一致辞
2015/07/31 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
导游词之襄阳古城
2019/09/27 职场文书
python tqdm用法及实例详解
2021/06/16 Python