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 相关文章推荐
用正则xmlHttp实现的偷(转)
Jan 22 Javascript
用 Javascript 验证表单(form)中的单选(radio)值
Sep 08 Javascript
来自国外的30个基于jquery的Web下拉菜单
Jun 22 Javascript
js优化针对IE6.0起作用(详细整理)
Dec 25 Javascript
JS二维数组的定义说明
Mar 03 Javascript
使用CSS3的scale实现网页整体缩放
Mar 18 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
JS数组交集、并集、差集的示例代码
Aug 23 Javascript
原生JS实现无缝轮播图片
Jun 24 Javascript
vscode 调试 node.js的方法步骤
Sep 15 Javascript
js前端图片加载异常兜底方案
Jun 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
ThinkPHP设置禁止百度等搜索引擎转码(简单实用)
2016/02/15 PHP
php基于curl实现的股票信息查询类实例
2016/11/11 PHP
js 异步处理进度条
2010/04/01 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
JQuery创建DOM节点的方法
2015/06/11 Javascript
向JavaScript的数组中添加元素的方法小结
2015/10/24 Javascript
jquery插件ajaxupload实现文件上传操作
2015/12/09 Javascript
JQuery组件基于Bootstrap的DropDownList(完整版)
2016/07/05 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
BootStrap无限级分类(无限极分类封装版)
2016/08/26 Javascript
Node.js 日志处理模块log4js
2016/08/28 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
react.js 翻页插件实例代码
2017/01/19 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
webpack+vue2构建vue项目骨架的方法
2018/01/09 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
vue中全局路由守卫中替代this操作(this.$store/this.$vux)
2020/07/24 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
学习python 之编写简单乘法运算题
2016/02/27 Python
python将unicode转为str的方法
2017/06/21 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
2018/05/16 Python
用Python编写一个简单的CS架构后门的方法
2018/11/20 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Python笔记之代理模式
2019/11/20 Python
Python使用urllib模块对URL网址中的中文编码与解码实例详解
2020/02/18 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
预备党员党课思想汇报
2014/01/13 职场文书
小学优秀辅导员事迹材料
2014/05/11 职场文书
甜品店创业计划书
2014/08/14 职场文书
2015年党员个人剖析材料
2014/12/18 职场文书
超市采购员岗位职责
2015/04/07 职场文书
高三语文教学反思
2016/02/16 职场文书
2016春季运动会开幕词
2016/03/04 职场文书