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 相关文章推荐
js中使用DOM复制(克隆)指定节点名数据到新的XML文件中的代码
Jul 27 Javascript
jquery动态更换设置背景图的方法
Mar 25 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Sep 04 Javascript
一个css与js结合的下拉菜单支持主流浏览器
Oct 08 Javascript
使用 JavaScript 进行函数式编程 (一) 翻译
Oct 02 Javascript
jQuery 1.9.1源码分析系列(十四)之常用jQuery工具
Dec 02 Javascript
Window.Open打开窗体和if嵌套代码
Apr 15 Javascript
JavaScript中对JSON对象的基本操作示例
May 21 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
VUE中使用MUI方法
Feb 12 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 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
AJAX for PHP简单表数据查询实例
2007/01/02 PHP
dede全站URL静态化改造[070414更正]
2007/04/17 PHP
PHP+ajax 无刷新删除数据
2010/02/20 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
php 输入输出流详解及示例代码
2016/08/25 PHP
PHP精确到毫秒秒杀倒计时实例详解
2019/03/14 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
Nodejs异步回调的优雅处理方法
2014/09/25 NodeJs
学习Javascript面向对象编程之封装
2016/02/23 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
js轮播图的插件化封装详解
2017/07/17 Javascript
聊聊那些使用前端Javascript实现的机器学习类库
2017/09/18 Javascript
详解Vue 事件修饰符capture 的使用
2017/12/29 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
Vue如何基于es6导入外部js文件
2020/05/15 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
[55:25]2018DOTA2亚洲邀请赛3月29日 小组赛A组 VG VS OG
2018/03/30 DOTA
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python获取本机mac地址和ip地址的方法
2015/04/29 Python
Python基于PycURL自动处理cookie的方法
2015/07/25 Python
利用python Selenium实现自动登陆京东签到领金币功能
2019/10/31 Python
Python求解正态分布置信区间教程
2019/11/20 Python
Python JSON编解码方式原理详解
2020/01/20 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
2020/05/24 Python
Html5上传图片 移动端、PC端通用代码
2016/06/08 HTML / CSS
手对手的教你用canvas画一个简单的海报的方法示例
2018/12/10 HTML / CSS
Banana Republic欧盟:美国都市简约风格的代表品牌
2018/05/09 全球购物
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
运动会通讯稿400字
2014/01/28 职场文书
高三毕业典礼主持词
2014/03/27 职场文书
信息合作协议书
2014/10/09 职场文书
个人党性锻炼总结
2015/03/05 职场文书
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js