优秀的编程知识分享平台

网站首页 > 技术文章 正文

javaScript 空参数(javascript中的空格)

nanyue 2024-08-19 18:54:11 技术文章 5 ℃


如下代码

<script type="text/javascript">
 function changeAge(person)
 {
 if(typeof person=='object')
 {
 //改变参数的age属性
 person.age=10;
 //输出参数age属性
 document.write("函数执行中person的age值为:"+person.age+"<br />");
 }
 else
 {
 alert("参数类型不符合:"+typeof person);
 }
 }
 changeAge();
 </script>

上面代码的函数声明中包含了一个参数,但调用函数时并没有传入任何参数,这种形式对于强类型语言,如java或C都是不允许的,但对于javaScript却没有任何语法问题,因为javaScript会将没有传入实参的参数值自动设置为undefined值


使用空参数完全没有任何程序问题,程序可以正常执行 ,只是没有传入实参的参数值将作为undefined处理。

由于javaScript调用函数时对传入的实参并没有要求,即使定义函数时声明了多个形参,调用函数时也并不强制要求传入相匹配的实参,因此javaScript没有所谓的函数“重载”,这种方式会导致后面定义的函数覆盖前面定义的函数,例如如下代码

<script type="text/javascript">
 function test()
 {
 alert("第一个无参数的test函数");
 }
 //后面定义的函数将会覆盖前面定义的函数
 function test(name)
 {
 alert("第二个带name参数的test函数:"+name);
 }
 //即使不传入参数,程序依然调用带一个参数的test函数
 test();
</script>

上面程序中定义了两个名为test()的函数,虽然两个test()函数声明的形参个数不同,但第二个test()函数会覆盖第一个test()函数。因此程序中粗体字的代码调用test()函数时,无论是否传入参数,程序始终都是调用第二个test()函数。

最近发表
标签列表