![9163506262cc83ec943133616ee48860.png](https://i-blog.csdnimg.cn/blog_migrate/0b5caf0d6851a78a0f7b2691c7398d8a.jpeg)
如下代码
上面代码的函数声明中包含了一个参数,但调用函数时并没有传入任何参数,这种形式对于强类型语言,如java或C都是不允许的,但对于javaScript却没有任何语法问题,因为javaScript会将没有传入实参的参数值自动设置为undefined值
![75102746b817aaaf420f63a9cc27ba34.png](https://i-blog.csdnimg.cn/blog_migrate/44a3c1b3bbefec1dd9bb09530e06b171.jpeg)
使用空参数完全没有任何程序问题,程序可以正常执行 ,只是没有传入实参的参数值将作为undefined处理。
由于javaScript调用函数时对传入的实参并没有要求,即使定义函数时声明了多个形参,调用函数时也并不强制要求传入相匹配的实参,因此javaScript没有所谓的函数“重载”,这种方式会导致后面定义的函数覆盖前面定义的函数,例如如下代码
上面程序中定义了两个名为test()的函数,虽然两个test()函数声明的形参个数不同,但第二个test()函数会覆盖第一个test()函数。因此程序中粗体字的代码调用test()函数时,无论是否传入参数,程序始终都是调用第二个test()函数。