1.在js中函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最有一个有效,其他的函数声明都是无效的。比如说声明了两个函数fn(),第一次声明时没有形参,第二次声明时形参有两个,则在调用fn()时不管有没有传入参数,都是调用后声明的那个函数。假如说调用时只传入了1个参数,例如fn(1),则1会赋给函数的第一个形参,而第二个形参不会赋值,如果有用到,就会当undefined处理,可能会报错。如果调用时传入了3个参数,例如fn(1,2,3),则1会赋给第一个形参,2会赋给第二个形参,3是用不上的,但是不会报错。

2.

函数调用测试,参数个数和函数声明不一样多

function needTwoPara(p1,p2){

var a=arguments;

var result='我是个需要2个参数的函数\n'

+'您输入的参数的个数为:'+a.length+'\n'

for(var i=0, len = a.length; i < len; i++){

result=result+'第'+(i+1)+'个参数为:'+a[i]+'\n'

}

result+='以上是用arguments来获得参数\n';

result+='下面用变量来获得参数:\n';

result+='p1:'+p1+'\n';

result+='p2:'+p2+'\n';

alert(result);

}

onClick="JavaScript: needTwoPara('smallerpig');">

onClick="JavaScript: needTwoPara('smallerpig','小小猪');">

onClick="JavaScript: needTwoPara('smallerpig','小小猪','生命不息');">

onClick="JavaScript: needTwoPara('smallerpig','小小猪','生命不息','学习不止');">

点击第一个按钮的返回结果:

点击第二个按钮的返回结果:

点击第三个按钮的返回结果:

点击第四个按钮的返回结果:

理解原因:

ECMAScript函数的参数与大多数其他语言中的函数的参数有所不同。ECMAScript函数不介意传递进来多少个参数,也不在乎穿进来参数是什么数据类型。也就是是说,即便你定义的函数值接受两个参数,在调用这个函数时也未必一定要是两个参数。可以传递一个、三个甚至不传递参数,而解析器永远不会有什么怨言。之所以会这样,原因是ECMAScript中的参数在内部是用一个数组来运行的。函数接受到的永远是这个数组,而不关心数组中包含哪些参数(如果有参数的话)。如果这个数组中不包含任何元素,无所谓;如果包含多个元素,也没问题。实际上,在函数体内可以通过arguments对象来访问这个参数数组,从而获取传递给含糊的每一个参数。

js传参不是数字_js调用函数时传入的参数个数与函数定义时的参数个数不符时的操作...相关推荐

  1. js中关于带数字类型参数传参丢失首位数字0问题

    最近在项目中遇到一个问题,js中传带有数字的参数时,如果参数开头有数字0,会把0给去掉. 例如: 方法abc(0123456,789); 方法abc中获取的参数0123456就会变为123456. 原 ...

  2. html中调用js带参数传递,JS传参技巧总结

    1.隐式创建 html 标签 这种方法一般配合 ajax,上面的 value 使用了模板引擎 2.window['data'] window["name"] = "the ...

  3. 前端vue.js传参list集合 ,springBoot后端接受方式。

    方式一: 前端写法 export function saveReport(data) {debuggerreturn axios({url: '/api/sjkhsj/saveReportImport ...

  4. export function函数传参_从底层看前端(七)—— JavaScript到底有多少种函数?

    在上篇文章中我们了解到了执行上下文是什么,也知道了任何语句的执行都会依赖特定的上下文. 一旦上下文被切换,整个语句的效果可能都会发生变化.那么,切换上下文的时机就显得非常重要. 在JavaScript ...

  5. js截取小数点前的数字_js保留两位小数、字符串截取

    在js中实现对数字保留两位小数.自定义函数: function twoDecimal(number){ if(isNaN(number)){ console.log(number + "不是 ...

  6. JS 传参Url加密解密

    web项目有时需要传 "路径"形式的参数,会遇到诸如"&._ .''. "等转码的问题 JS 加密: var  url = URL参数: url=enc ...

  7. python传参怎么校验数字_python 多个参数不为空校验方法

    python 多个参数不为空校验方法 在实际开发中经常需要对前端传递的多个参数进行不为空校验,可以使用python提供的all()函数 if not all([arg1, arg2, arg3]): ...

  8. js java传参乱码_【技术贴】解决前台js传参中文乱码

    方法1: 前台两次编码,后台一次解码.因为getParamet已经自动解了一次了. JavaScript: window.self.location="list.jsp?searchtext ...

  9. 【技术贴】解决前台js传参中文乱码

    方法1: 前台两次编码,后台一次解码.因为getParamet已经自动解了一次了. JavaScript: window.self.location="list.jsp?searchtext ...

最新文章

  1. 一个在raw里面放着数据库文件的网上例子
  2. 毕业之后,这些年薪50万+的90后程序员经历了什么?
  3. 软件研发的这些误区,你中了吗?
  4. 【视频】如何正确焊接贴片、直插元件?
  5. List实现类中调用下标删除VS调用元素删除
  6. editorloop 占用_速度控制 部分重复 语言学习软件 Loopman
  7. php mssql 查询数据,PHP中的MSSQL查询问题和查询文本数据
  8. 线程同步--信号量内核对象
  9. Excel 公式 lenB无效 解决方案
  10. 本地跟单EA安装教程详解
  11. 有双面打印功能的打印机,安装驱动后,无法选择自动双面打印的解决方法
  12. LimeSurvey(开源问卷调查)
  13. import oracle utility_oracle executing oracle import utility,please wait终极解决方案
  14. 求一元二次方程的实根或虚根
  15. 5G商用牌照正式发放!万亿级市场大门开启
  16. biogeme-nest_logit-cnblog
  17. c语言 编程结束怎么表示,c语言开头(c语言编程开头和结束代码)
  18. 正则表达式的一些重要知识
  19. 【独行秀才】macOS Big Sur 11.5.1 正式版(20G80)原版镜像
  20. 一篇文章说清楚shared_ptr,unique_ptr的区别和关系

热门文章

  1. Kundera 2.1 发布,NoSQL 的 ORM 框架
  2. samba加入windows 2003域
  3. 使用.NET Remoting开发分布式应用——基于租约的生存期(转载)
  4. usgs地震记录如何下载_用大叶草绘制USGS地震数据
  5. 先进的NumPy数据科学
  6. 数据探索性分析_探索性数据分析
  7. 如何评价强gis与弱gis_什么是gis的简化解释
  8. leetcode 1787. 使所有区间的异或结果为零
  9. leetcode145. 二叉树的后序遍历(dfs)
  10. leetcode990. 等式方程的可满足性(并查集)