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系列(9) 根本没有“JSON对象”这回事!
Jan 15 Javascript
js 验证密码强弱的小例子
Mar 21 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
Apr 19 Javascript
举例讲解JavaScript中关于对象操作的相关知识
Nov 16 Javascript
jquery实现右侧栏菜单选择操作
Mar 04 Javascript
解决jQuery ajax请求在IE6中莫名中断的问题
Jun 20 Javascript
AngularJS API之copy深拷贝详解及实例
Sep 14 Javascript
vue-cli单页应用改成多页应用配置详解
Jul 14 Javascript
浅谈在fetch方法中添加header后遇到的预检请求问题
Aug 31 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
Oct 21 Javascript
关于js的三种使用方式(行内js、内部js、外部js)的程序代码
May 05 Javascript
微信小程序下拉刷新PullDownRefresh的使用方法
Nov 29 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
php出现Cannot modify header information问题的解决方法大全
2008/04/09 PHP
php连接数据库代码应用分析
2011/05/29 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
2013/06/10 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
2014/06/25 PHP
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
腾讯的ip接口 方便获取当前用户的ip地理位置
2010/11/25 Javascript
js FLASH幻灯片字符串中有连接符&的处理方法
2012/03/01 Javascript
Javascript 命名空间模式
2013/11/01 Javascript
Node.js中调用mysql存储过程示例
2014/12/20 Javascript
jQuery中ajax的get()方法用法实例
2014/12/26 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
jquery选择器中的空格与大于号&gt;、加号+与波浪号~的区别介绍
2016/06/24 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
利用js的闭包原理做对象封装及调用方法
2017/04/07 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
Vue 解决多级动态面包屑导航的问题
2019/11/04 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
python回调函数的使用方法
2014/01/23 Python
使用Numpy读取CSV文件,并进行行列删除的操作方法
2018/07/04 Python
windows下python安装小白入门教程
2018/09/18 Python
python实现门限回归方式
2020/02/29 Python
python thrift 实现 单端口多服务的过程
2020/06/08 Python
欧缇丽英国官方网站:Caudalie英国
2016/08/17 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
学生出入校管理制度
2014/01/16 职场文书
商务经理岗位职责
2014/08/03 职场文书
学院党的群众路线教育实践活动整改方案
2014/10/04 职场文书
转正申请报告格式
2015/05/15 职场文书
禁毒主题班会教案
2015/08/14 职场文书
创业计划书之服装
2019/10/07 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
Python开发五子棋小游戏
2022/04/28 Python
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL