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 相关文章推荐
javascript实现仿银行密码输入框效果的代码
Dec 13 Javascript
AJAX分页的代码(后台asp.net)
Feb 14 Javascript
jqueyr判断checkbox组的选中(示例代码)
Nov 08 Javascript
jquery自动切换tabs选项卡的具体实现
Dec 24 Javascript
js实现登录框鼠标拖拽效果
Mar 09 Javascript
简单实现JS上传图片预览功能
Apr 14 Javascript
BootStrap的双日历时间控件使用
Jul 25 Javascript
在一般处理程序(ashx)中弹出js提示语
Aug 16 Javascript
微信小程序左滑动显示菜单功能的实现
Jun 14 Javascript
vue-router 手势滑动触发返回功能
Sep 30 Javascript
生产制造追溯系统之在线打印功能
Jun 03 Javascript
javascript设计模式 ? 备忘录模式原理与用法实例分析
Apr 21 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
在线短消息收发的程序,不用数据库
2006/10/09 PHP
收藏的一个php小偷的核心程序
2007/04/09 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
php中照片旋转 (orientation) 问题的正确处理
2017/02/16 PHP
laravel Validator ajax返回错误信息的方法
2019/09/29 PHP
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
JavaScript匿名函数用法分析
2015/02/13 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
2015/11/30 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
jQuery的事件预绑定
2016/12/05 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
小程序中设置缓存过期的实现方法
2020/01/14 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
[53:36]Liquid vs VP Supermajor决赛 BO 第三场 6.10
2018/07/05 DOTA
实例讲解python函数式编程
2014/06/09 Python
python实现井字棋游戏
2020/03/30 Python
快速了解Python开发中的cookie及简单代码示例
2018/01/17 Python
python随机数分布random均匀分布实例
2019/11/27 Python
python 统计文件中的字符串数目示例
2019/12/24 Python
Python Excel vlookup函数实现过程解析
2020/06/22 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
python操作ini类型配置文件的实例教程
2020/10/30 Python
css3背景_动力节点Java学院整理
2017/07/11 HTML / CSS
canvas绘图按照contain或者cover方式适配并居中显示
2019/02/18 HTML / CSS
架构师岗位职责
2013/11/18 职场文书
大一自我鉴定范文
2013/12/27 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
买房子个人收入证明
2014/10/12 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
幼儿园保教工作总结2015
2015/10/15 职场文书