JS函数实参和形参参数个数不一致时的处理和后果
2017-11-10 00:00
531 查看
描述
在js中函数没有重载的概念,如果声明了多个重名的函数,不管函数的形参个数是否一样,只有最后一个有效,其他的函数声明都是无效的。
实参比形参少
定义一个函数fn(v1, v2),调用fn()时写成fn(s1):**处理:**s1会赋值给v1。当第二个参数v2在函数中没有用到就不会被赋值,如果用到会被当undefined处理。
**结果:**v2为undefined时,可能会报错。
实参比形参多
定义一个函数fn(v1, v2),调用fn()时写成fn(s1, s2, s3):**处理:**s1被赋值给v1,s2被赋值给v2,s3会被忽略。
**结果:**不会报错。
其他情况
以上是一般JS的处理方式,当然也有特殊,比如jquery中的clone()函数,其默认参数有两个,不传值的时候两个参数默认false,传一个的时候默认第二个值与第一个相等...所以,难搞,具体情况还需具体对待,呀啦~相关文章推荐
- JS函数的参数(arguments)的使用(形参和实参)
- JavaScript的作用;JS常见的三种对话框;==和===的区别;函数内部参数数组arguments在函数内部打印实参;JS的误区:没有块级作用域
- js几个简单的工具类函数 事件绑定处理、加载数据字典下拉框、重新加载下拉框、参数处理
- C语言学习12:带参数的main函数,无指定的函数形参,调用库函数处理无指定的函数形参,
- 注意有指针参数的函数定义与函数实现 必须一致,编译器只检查是否是指针,而不管你的实参是几维指针
- js函数形参、实参、arguments[]的一探究竟
- JS如何判断函数的形参个数与实参个数是否相等
- 函数的参数(形参实参)及返回值
- 【js学习笔记-047】-- 函数的实参和形参
- 实参和形参指针做函数参数时,如何改变main函数变量的值
- C#中函数参数的形参和实参即加ref 或加 out 与全部不加
- 函数调用参数为指针时,实参跟形参的问题
- 函数介绍形参,实参,位置参数,关键参数
- 【实例讲解】JS中形参、实参可以不一致
- JS与PHP在函数传参方面有点不同,PHP形参与实参个数要匹配,而JS就灵活多了,可以随意传参,实参比形参少或多都不会报错
- 当用数组名作函数参数时,情况则不同。由于实际上形参和实参为同一数组,因此当形参数组发生变化时,实参数组也随之
- C语言:函数声明与定义的参数不一致问题,后果可能很严重哦!!!!!
- 关于,函数调用是传值调用,初始化函数中重新分配内存,导致形参的值和实参的值不一致 问题分析
- 【代码】结构体做函数参数,实现形参向实参传递值
- C语言中实参和形参问题&&函数使用数组作为参数的问题