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 AJAX 框架的使用方法
Nov 03 Javascript
实现局部遮罩与关闭原理及代码
Feb 04 Javascript
avalonjs实现仿微博的图片拖动特效
May 06 Javascript
js去除浏览器默认底图的方法
Jun 08 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
Aug 04 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
Mar 13 Javascript
JQuery Ajax WebService传递参数的简单实例
Nov 02 Javascript
手机端js和html5刮刮卡效果
Sep 29 Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
微信小程序实战篇之购物车的实现代码示例
Nov 30 Javascript
Vue 莹石摄像头直播视频实例代码
Aug 31 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
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
全国FM电台频率大全 - 23 四川省
2020/03/11 无线电
一个图形显示IP的PHP程序代码
2007/10/19 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
2009/08/24 PHP
php excel类 phpExcel使用方法介绍
2010/08/21 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
PHP内存缓存Memcached类实例
2014/12/08 PHP
php简单防盗链实现方法
2015/07/29 PHP
WordPress开发中用于标题显示的相关函数使用解析
2016/01/07 PHP
asp javascript 实现关闭窗口时保存数据的办法
2007/11/24 Javascript
escape、encodeURI 和 encodeURIComponent 的区别
2009/03/02 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
javascript实现修改微信分享的标题内容等
2014/12/11 Javascript
DIV+CSS+jQ实现省市联动可扩展
2016/06/22 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
Bootstrap免费字体和图标网站(值得收藏)
2017/03/16 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
JS基于正则实现数字千分位用逗号分隔的方法
2017/06/16 Javascript
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
Python isinstance函数介绍
2015/04/14 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
PyQt5 QSerialPort子线程操作的实现
2018/04/21 Python
python2和python3哪个使用率高
2020/06/23 Python
Django windows使用Apache实现部署流程解析
2020/10/12 Python
python Zmail模块简介与使用示例
2020/12/19 Python
澳大利亚在线购买儿童玩具:Toy Universe
2017/12/28 全球购物
大学毕业后的十年规划
2014/01/07 职场文书
新学期班主任寄语
2014/01/18 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
2015年个人现实表现材料
2014/12/10 职场文书
2014年节能工作总结
2014/12/18 职场文书
压缩Redis里的字符串大对象操作
2021/06/23 Redis
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers