第十篇--------javascript函数-参数
javascript函数的参数:形参,实参
//function 参数
//形参列表
function test(a,b,c,d){
//alert(test.length); //形参个数,4个
//函数的实际参数,内部就是用一个数组去接收函数的实际参数
//arguments 对象,可以访问函数的实际参数
//arguments 对象只能在函数的内部使用
alert(arguments.length); //2个
alert(arguments[0]); //
alert(arguments[1]); //
return a+b;
}
alert(test(10,20)); //30,函数的形参和实际参数不一致不会报错。
但是这样写程序不严谨,我们希望的是只有形参和实参个数一致 的时候才去执行函数,否则抛出异常或者给一个提示
所以加上判断:
if(test.length == arguments.length){
return a+b;
}else{
return '参数不正确!';
}
还有问题,test.length虽然能够取到形参的个数,但是一般不这么用,会有潜在性的问题。一般用arguments.callee例子:
//递归
function fact(num){
if(num<=1) return 1;
else
return num*fact(num-1);
}
var F = fact ; //你把fact 赋值给了变量 F,相当于复制了一份
fact = null; //假设有其他人把 fact 弄成了null,
alert(F(5)); //报错
但是用arguments.callee来代替fact这样写就不会报错了:
//递归
function fact(num){
if(num<=1) return 1;
else
return num*arguments.callee(num-1); //使用arguments.callee,指向函数本身
}
var F = fact ; //你把fact 赋值给了变量 F,相当于复制了一份
fact = null; //假设有其他人把 fact 弄成了null
alert(F(5));
所以上边的用取形参也不用test.length,也使用arguments.callee.length:
if(arguments.callee.length == arguments.length){
return a+b;
}else{
return '参数不正确!';
}
总结:

第十篇--------javascript函数-参数的更多相关文章
- 第十篇---javascript函数this关键字
<script type="text/javascript" charset="utf-8"> //this:this对象是指运行时期基于执行环境所 ...
- 第十篇----------javascript函数的三种定义方式及区别
javascript定义函数有3种方式: //3种函数定义方式,前两种常用 /** * 1,function 语句式 * 形式:句子 * 名称:有名 * 性质:静态 * 解析时机:优先解析 * 作用域 ...
- JavaScript 函数参数是传值(byVal)还是传址(byRef)?
对于“JavaScript 函数参数是传值(byVal)还是传址(byRef)”这个问题,普遍存在一个误区:number,string等“简单类型”是传值,Number, String, Object ...
- javascript 函数参数
1.javascript函数参数的个数以及类型没有强制规定,调用时不必严格按照函数的参数或类型,函数的参数只是在调用函数的时候提供了便利,但不是必须的! 2.参数在javascript内部是用数组ar ...
- 理解JavaScript函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...
- 深入理解javascript函数参数与闭包(一)
在看此文章,希望先阅读关于函数基础内容 函数定义与函数作用域 的章节,因为这篇文章或多或少会涉及函数基础的内容,而基础内容,我放在函数定义函数作用域 章节. 本文直接赘述函数参数与闭包,若涉及相关知识 ...
- 深入理解JavaScript函数参数
前面的话 javascript函数的参数与大多数其他语言的函数的参数有所不同.函数不介意传递进来多少个参数,也不在乎传进来的参数是什么数据类型,甚至可以不传参数. arguments javascri ...
- Python学习札记(十二) Function3 函数参数一
参考:函数参数 Note 1.Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以 ...
- python学习二十四天函数参数之默认参数
函数参数就是向函数传递参数,可以传递一个,可以是更多个,有的参数有值,有的没有,函数可以设置默认参数,默认参数必须放参数最后面. 1,不传递参数,设置默认参数 def hello(a,b,c='123 ...
随机推荐
- 日志文件(关于#IRSA_MDPS_RDM软件 密码登录事项 7月26号)
1.登录:sqlplus 用户名:scott 口令:123 qweas.. //2018-7-16号更改密码 2.查看该用户(已登录)下有几个表:select table_name from user ...
- UIPickerView 修改必须滚动才修改值的bug
//相应的选择转动 - (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSI ...
- .NET基础 (16)事件
事件1 请解释事件的基本使用方法2 事件和委托有何联系3 如何设计一个带有很多事件的类型4 用代码表示如下情景:猫叫.老鼠逃跑.主人惊醒 事件1 请解释事件的基本使用方法 事件时一种使对象或类能够提供 ...
- HRBUST1213 单词接龙 2017-03-06 15:53 67人阅读 评论(0) 收藏
单词接龙 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的"龙"(每个单词都最多在"龙&quo ...
- Javascript设计模式理论与实战:适配器模式
有的时候在开发过程中,我们会发现,客户端需要的接口和提供的接口发生不兼容的问题.由于特殊的原因我们无法修改客户端接口.在这种情况下,我们需要适配现有接口和不兼容的类,这就要提到适配器模式.通过适配器, ...
- Monthly数据类型
Monthly由来 最近在做关于智能财税的项目,大量用到了账期相关的数据操作.项目已有两年历史了,对于账期数据,前辈们用的是DateTime数据类型,即每个月的最后一天就是账期.而用DateTime来 ...
- MD5签名
/// <summary> /// 校验签名 /// </summary> /// <param name="mode ...
- DotNet三层架构
[项目结构]DAL 数据访问层.BLL 业务逻辑.UI 表现层 Model 数据.Common 常用工具[引用关系]DAL --> Model CommonCommon --> 谁都不引用 ...
- 巧用网页开发者工具F12 审查、修改元素、去除广告、屏蔽遮罩
巧用网页开发者工具F12 审查.修改元素.去除广告.屏蔽遮罩 每当打开一个网页的时候,是否为页面有很多广告而烦恼:是否为要操作页面(例如观看超清视频),请先注册登录等等事情而麻烦:是否对网页加锁的视频 ...
- Exp4 恶意代码分析 20164323段钊阳
网络对抗技术 20164323 Exp4 恶意代码分析 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. ...