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 相关文章推荐
javascript multibox 全选
Mar 22 Javascript
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
Jan 05 Javascript
javascript smipleChart 简单图标类
Jan 12 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
Apr 08 Javascript
jquery ajax jsonp跨域调用实例代码
Dec 11 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
快速解决js动态改变dom元素属性后页面及时渲染的问题
Jul 06 Javascript
微信小程序 蓝牙的实现实例代码
Jun 27 Javascript
Angular弹出模态框的两种方式
Oct 19 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
Jan 20 Javascript
彻底理解js面向对象之继承
Feb 04 Javascript
通过实例解析JavaScript for in及for of区别
Jun 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
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
jQuery打印指定区域Html页面并自动分页
2014/07/04 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
node.js中的fs.readFileSync方法使用说明
2014/12/15 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
JavaScript获取服务器端时间的方法
2016/11/29 Javascript
Java与JavaScript中判断两字符串是否相等的区别
2017/03/13 Javascript
JavaScript原型继承_动力节点Java学院整理
2017/06/30 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
修改vue+webpack run build的路径方法
2018/09/01 Javascript
浅析Vue.js 中的条件渲染指令
2018/11/19 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
mui js控制开关状态、修改switch开关的值方法
2019/09/03 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
详解vue 组件的实现原理
2020/11/12 Javascript
vue中使用echarts的示例
2021/01/03 Vue.js
详解vue3中组件的非兼容变更
2021/03/03 Vue.js
Python编程实现蚁群算法详解
2017/11/13 Python
浅谈PyQt5 的帮助文档查找方法,可以查看每个类的方法
2019/06/25 Python
django filter过滤器实现显示某个类型指定字段不同值方式
2020/07/16 Python
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
工作迟到检讨书
2014/02/21 职场文书
客服部班长工作责任制
2014/02/25 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
银行保安拾金不昧表扬稿
2015/05/05 职场文书
律师函格式范本
2015/05/27 职场文书
地道战观后感300字
2015/06/04 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL