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