JavaScript 函数参数
JavaScript 通过函数参数将数据传递到函数内部,JavaScript 的函数参数数量是灵活的,参数的类型是不受限制的。
JavaScript 通过函数参数将数据传递到函数内部,JavaScript 的函数参数数量是灵活的,参数的类型是不受限制的。
在本教程的前面部分,已经了解到函数的语法如下:
function functionName(parameter1, parameter2, parameter3) {
// some code
}
其中 parameter1
等便是函数的参数的参数名,而参数值则是 parameter1
具体的内容,可能是一个文字值,可能是一个对象或者数组,具体是什么则完全根据函数的定义。
函数参数规则:
- JavaScript 函数定义不指定参数的数据类型。
- JavaScript 函数不会对传递的参数执行类型检查。
- JavaScript 函数不检查接收到的参数数量。
默认参数值
如果调用函数时的参数数量少于定义的数量,那么缺失的参数的值为 undefined
。
对于参数的缺失,健壮的程序一般都会有相应的处理机制:
function myFunction(x, y) {
if (y === undefined) {
y = 2;
}
}
ECMAScript 2015 允许在函数声明中使用默认参数值:
function (x, y = 2) {
// some code
}
arguments 对象
JavaScript 函数内置一个参数对象 arguments
,参数对象包含调用函数时使用的参数数组。
利用 arguments
实现一个求最大值的方法:
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
let max = -Infinity;
for (let i = 0; i < arguments.length; i++) {
if (arguments[i] > max) {
max = arguments[i];
}
}
return max;
}
利用 arguments
实现一个求和的方法:
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
let sum = 0;
for (let i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
如果调用的函数参数数量比声明的多,就可以使用 arguments
对象访问这些参数。