第十篇--------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 ...
随机推荐
- 看图说说JVM新生代垃圾收集器
- linux apache安装https证书
1.首先查看是否安装apache 命令:rpm -qa|grep httpd 如果存在,卸载命令:rpm -e XXXX 如果不存在,安装命令:yum install httpd 安装完apache之 ...
- asp.net 使用Oracle数据库
asp.net下使用oracle会发生“未能加载文件或程序集‘Oracle.DataAccess’或它的某一个依赖项”的错误.这说明Oracle的驱动没有安装好,或者版本不对的错误. 1.检查Orac ...
- 通过hive向写elasticsearch的写如数据
通过hive向写elasticsearch的写如数据 hive 和 elasticsearch 的整合可以参考官方的文档: ES-hadoop的hive整合 : https://www.elastic ...
- MVC中用jQuery加BootStrap实现动态增加删除文本输入框!
http://www.freejs.net/article_biaodan_278.html 这是在网上找到方法,我修改了一下实合我的项目,发博只为收藏记录并加深记忆. 修改后效果如下 @model ...
- Luogu4551 最长异或路径
题目链接:戳我 emmmmmmmmmm异或一个数两次等于没有操作对吧...所以我们按照前缀的异或和,建一个01trie.....然后之后.....直接在树上贪心地找能和它每一位不一样的数....然后. ...
- 552. Student Attendance Record II
Given a positive integer n, return the number of all possible attendance records with length n, whic ...
- 【Oracle 12c】最新CUUG OCP-071考试题库(56题)
56.(14-14) choose the best answer: You need to create a table with the following column specificatio ...
- 【OCP-12c】CUUG 071题库考试原题及答案解析(20)
20.choose two Examine the description of the EMP_DETAILS table given below: Which two statements are ...
- BZOJ3210: 花神的浇花集会(坐标系变换)
题面 传送门 题解 坐标系变换把切比雪夫距离转化为曼哈顿距离 那么对于所有的\(x\)坐标中,肯定是中位数最优了,\(y\)坐标同理 然而有可能这个新的点不合法,也就是说不存在\((x+y,x-y)\ ...