日期:2014-05-16  浏览次数:20374 次

[转]Javascript函数的参数问题
Javascript函数的参数问题?? http://redcoatjk.iteye.com/admin/blogs/new

分类: Python/Ruby

?

和C语言严格的编译检测不同,Javascript函数的参数采用一种灵活的方法。我们这篇博文,主要学习Javascript的函数参数的问题。

熟悉C 语言的筒子们比较了解,C语言对函数的定义,声明还有调用 对参数个数的一致性检查比较严格。如果定义函数有3个入参,你调用时传递4个参数过去,编译器会报错。但是Javascript不同,不一定非得传三个参数进去,你传4个参数,2个参数,甚至0个参数都没关系,解析器不会抱怨。
?
下面我们用Firebug工具来学习一下Javascript函数参数的特性。Firebug是一个强大的WEB编程的工具,我们知道C语言调试,我们有GDB这样很强大的工具,Firebug是一个类似很强大的工具。你装了Firefox浏览器后,可以很方便的调试。至于怎么样在Firefox下安装Firebug插件,这个自行百度即可
?
看下右边黑色笔迹圈起来的小爬虫一样的logo,对应的就是Firebug。点击小爬虫,你就可以得到下面的Firebug工作区域。对于我们来讲,我们使用控制台,来学习Javascript函数参数相关的知识。
?
?
EMCAscript的函数的入参都保存在一个叫arguments的数组里面,函数可以轻易的获取传进的入参。他不介意你传的的参数是否和函数定义中的形参个数是否一致。
OK,写测试代码,验证。
?
1 参数个数不一致,解析器也OK。
?
上图是演示如何使用Firebug写测试程序,右侧是代码,点击运行,左侧出现运行的结果为了方便阅读,后面就不采用截图展示的方法了。
我们看到sum函数有两个参数,但是调用的地方,我们用了sum(1,2,100),传进了三个参数。事实证明,这样解析器并不会报错,返回了前两个值1,2 的和
?
2 参数保存在一个叫arguments的数组里面。至于参数的个数可以通arguments.length来获得。
?
Firebug 右侧输入: