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类定义例子
Sep 12 Javascript
浏览器脚本兼容 文本框中,回车键触发事件的兼容
Jun 21 Javascript
使用npm发布Node.JS程序包教程
Mar 02 Javascript
Js数组排序函数sort()介绍
Jun 08 Javascript
js编写贪吃蛇的小游戏
Aug 24 Javascript
jQuery实现的表头固定效果实例【附完整demo源码下载】
Aug 01 Javascript
javascript ASCII和Hex互转的实现方法
Dec 27 Javascript
EasyUI学习之Combobox级联下拉列表(2)
Dec 29 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
Feb 19 jQuery
微信小程序实现原生步骤条
Jul 25 Javascript
微信小程序常用的3种提示弹窗实现详解
Sep 19 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生成静态文件的多种方法分享
2012/07/17 PHP
php无限遍历目录示例
2014/02/21 PHP
浅析PHP中Session可能会引起并发问题
2015/07/23 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
利用switch语句进行多选一判断的实例代码
2016/11/14 PHP
Code: write(s,d) 输出连续字符串
2007/08/19 Javascript
jQuery实现复选框全选/取消全选/反选及获得选择的值
2014/06/12 Javascript
Nodejs实现多人同时在线移动鼠标的小游戏分享
2014/12/06 NodeJs
input点击后placeholder中的提示消息消失
2016/01/15 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
详解webpack进阶之loader篇
2017/08/23 Javascript
nodejs实现的连接MySQL数据库功能示例
2018/01/25 NodeJs
Python利用正则表达式匹配并截取指定子串及去重的方法
2015/07/30 Python
利用python3随机生成中文字符的实现方法
2017/11/24 Python
Python后台开发Django的教程详解(启动)
2019/04/08 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
python实现提取str字符串/json中多级目录下的某个值
2020/02/27 Python
python支持多继承吗
2020/06/19 Python
python爬虫中抓取指数的实例讲解
2020/12/01 Python
HTML5图片预览实例分享
2014/06/04 HTML / CSS
英国排名第一的最新设计师品牌手表独立零售商:TIC Watches
2016/09/24 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
大学生学习自我评价
2014/01/13 职场文书
财务总监管理职责范文
2014/03/09 职场文书
邹越感恩父母演讲稿
2014/08/28 职场文书
银行委托书范本
2014/09/28 职场文书
2015年安全生产责任书
2015/01/30 职场文书
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python
Python上下文管理器Content Manager
2021/06/26 Python
gateway与spring-boot-starter-web冲突问题的解决
2021/07/16 Java/Android
Java网络编程之UDP实现原理解析
2021/09/04 Java/Android
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python