函数的参数包括两种类型:
- 形参:在定义函数时,声明的参数变量,仅在函数内部可见。
- 实参:在调用函数时,实际传入的值。
【示例1】定义JavaScript函数时,可以设置零个或多个参数。
function f(a,b){ //设置形参a和b return a+b; } var x=1,y=2; //声明并初始化变量 console.log(f(x,y)); //调用函数并传递实参
在上面示例中,a、b就是形参,而在调用函数时向函数传递的变量x、y就是实参。
一般情况下,函数的形参和实参数量应该相同,但是JavaScript并没有要求形参和实参必须相同。在特殊情况下,函数的形参和实参数量可以不相同。
【示例2】如果函数实参数量少于形参数量,那么多出来的形参的值默认为undefined。
(function(a,b){ //定义函数,包含两个形参 console.log(typeof a); //返回number console.log(typeof b); //返回undefined })(1); //调用函数,传递一个实参
【示例3】如果函数实参数量多于形参数量,那么多出来的实参就不能够通过形参进行访问,函数会忽略掉多余的实参。在下面这个示例中,实参3和4就被忽略掉了。
(function(a,b){ //定义函数,包含两个形参 console.log(a); //返回1 console.log(b); //返回2 })(1,2,3,4); //调用函数,传入四个实参值
【提示】
在实际应用中,经常存在实参数量少于形参数量,但是在函数内依然可以使用这些形参,这是因为在定义函数时,已经对它们进行了初始化,设置了默认值。在调用函数时,如果用户不传递或少传递参数,则函数会采用默认值。而形参数量少于实参的情况比较少见,这种情况一般发生在参数数量不确定的函数中。