JS函数arguments数组获得实际传参数个数的实现方法


Posted in Javascript onMay 28, 2016

JS与PHP在函数传参方面有点不同,PHP形参与实参个数要匹配,而JS就灵活多了,可以随意传参,实参比形参少或多都不会报错。

实参比形参多不会报错

function say(a){
  alert(a); 
}
 
say('琼台博客','WEB技术博客');

执行结果

JS函数arguments数组获得实际传参数个数的实现方法

我们再来看看形参比实参多的结果

function say(a,b){
  alert('a 的值是 '+a+'\nb 的值是 '+b); 
}
 
say('琼台博客');

执行结果

JS函数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技术博客');

执行结果

JS函数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  四个数对比结果

JS函数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 六个数对比结果

JS函数arguments数组获得实际传参数个数的实现方法

根据两次运算结果,我们发现无论我们传进多少个数字,都能正确比对结果。arguments一般用在实参个数不定的地方,比如上边的例子,你可以传5个数进去比较,也可以传100个数进去比较都可以。

以上这篇JS函数arguments数组获得实际传参数个数的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
由document.body和document.documentElement想到的
Apr 13 Javascript
保证JavaScript和Asp、Php等后端程序间传值编码统一
Apr 17 Javascript
js 操作select相关方法函数
Dec 06 Javascript
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
Dec 26 Javascript
js自动生成对象的属性示例代码
Oct 28 Javascript
Javascript基础教程之数据类型 (字符串 String)
Jan 18 Javascript
javascript闭包的理解
Apr 01 Javascript
微信小程序中使元素占满整个屏幕高度实现方法
Dec 14 Javascript
JavaScript数据结构之数组的表示方法示例
Apr 12 Javascript
微信小程序 图片宽高自适应详解
May 11 Javascript
利用 spin.js 生成等待效果(js 等待效果)
Jun 25 Javascript
Vue封装的组件全局注册并引用
Jul 24 Javascript
深入理解JS函数的参数(arguments)的使用
May 28 #Javascript
深入理解js中this的用法
May 28 #Javascript
关于function类中定义变量this的简单说明
May 28 #Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
May 28 #Javascript
动态更新highcharts数据的实现方法
May 28 #Javascript
不同js异步函数同步的实现方法
May 28 #Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 #Javascript
You might like
php抓即时股票信息
2006/10/09 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
php7安装yar扩展的方法详解
2017/08/03 PHP
PHP在同一域名下两个不同的项目做独立登录机制详解
2017/09/22 PHP
PHP convert_uudecode()函数讲解
2019/02/14 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
常见浏览器多长时间会提示“脚本运行时间过长”总结
2014/04/29 Javascript
jquery实现动态画圆
2014/12/04 Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
2015/03/02 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
Vuejs第十二篇之动态组件全面解析
2016/09/09 Javascript
JS实现改变HTML上文字颜色和内容的方法
2016/12/30 Javascript
BootStrap 导航条实例代码
2017/05/18 Javascript
vue 添加vux的代码讲解
2017/11/30 Javascript
vue cli使用绝对路径引用图片问题的解决
2017/12/06 Javascript
详解webpack 入门与解析
2018/04/09 Javascript
深入理解Vue keep-alive及实践总结
2019/08/21 Javascript
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
Python PO设计模式的具体使用
2019/08/16 Python
Python collections模块使用方法详解
2019/08/28 Python
Python类中self参数用法详解
2020/02/13 Python
Python进程Multiprocessing模块原理解析
2020/02/28 Python
西班牙灯具网上商店:Lampara.es
2018/06/05 全球购物
衰败城市英国官网:Urban Decay英国
2020/04/29 全球购物
如何在.net Winform里面显示PDF文档
2012/09/11 面试题
思想品德自我鉴定
2013/10/12 职场文书
总经理助理岗位职责
2013/11/08 职场文书
2014年帮扶工作总结
2014/11/26 职场文书
2016年公司新年寄语
2015/08/17 职场文书
纪律委员竞选稿
2015/11/19 职场文书
世界文化遗产导游词
2019/08/07 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript