JS函数参数的理解

来源:互联网 发布:江苏省困难职工数据库 编辑:程序博客网 时间:2024/06/05 08:58

如果你被问道,在JS中,你有没有遇到过传递不同的参数函数的会进行不同的行为?想也不想,当然有啊,这是所有语言的特性呀,所有的语言中都会根据传入的参数不同而得到不同的答案啦!嗯,完美 ,这是标准答案~

然而,too naive!要记住,在思考问题的时候,一定要有超越标准的思想。所以,一个题目我们可以理解成谈谈你对JS中参数的理解。那进入正题,我们知道,在大多数后台语言中(例如JAVA,C语言等),函数在定义的同时会声明相应的参数类型和数量,调用时如果参数类型或数量对应不上则会报错,但是在javascript中, 恰恰相反,函数的参数并不是由函数本身决定的,而是由调用者决定所传入的参数数量,而且参数类型也不需要定义。如一下声明,function testFun(){  //函数体 },这个函数在调用的时候可以不带参数,但是调用者也可以传入参数,javascript引擎并不会报错,而且能顺利运行。这是为虾米呢?

这是因为javascript的函数的参数都是通过一个内置对象来获取的,即arguments对象,这个对象会把你传入的参数组成一个数组,你可以在函数体中调用arguments.length查看参数的数量,并且可以通过arguments[index]的方式使用传入的参数。函数在解析参数的时候只会去寻找arguments对象,并不会在乎你传入了多少变量,在你没有传入参数的时候,arguments.length的值为0。

原创粉丝点击