文章目录
JavaScript 函数参数
JavaScript 函数不会对参数值执行任何双重检查。
函数显式参数(Parameters)和隐式参数(Arguments)
在最初的教程中,我们已经了解了函数的显式参数:
functionName(parameter1, parameter2, parameter3) {
// 要执行的代码……
}
函数显式参数在函数定义时被枚举。
函数隐式参数是调用函数时传递给函数的真实值。
参数规则
JavaScript 函数定义显示参数未指定数据类型。
JavaScript 函数不会对隐式参数进行类型检查。
JavaScript 函数不测量隐式参数的数量。
默认参数
如果函数调用时没有提供隐式参数,则该参数将默认为:undefined
有时这是可以接受的,但建议为参数设置默认值:
function myFunction(x, y) {
if (y === undefined) {
y = 0;
}
}
或者,以更简单的形式:
function myFunction(x, y) { y = y || 0; }
注:y|| 如果 y 已经定义,则返回 y,因为 y 为 truejavascript 参数函数,否则返回 0,因为 undefined 为 false。
如果函数调用时设置的参数过多,会导致参数引用困难javascript 参数函数,因为找不到对应的参数名。 只能使用参数对象来调用。
参数对象
JavaScript 函数有一个外部对象参数对象。
参数对象包含函数调用的参数字段。
通过这些方法你可以很容易找到最大参数的值:
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
var i, max = arguments[0];
if (arguments.length < 2) return max;
for (i = 0; i max) {
max = arguments[i];
}
}
return max;
}
或者创建一个函数来计算所有值的总和:
x = sumAll(1, 123, 500, 115, 44, 88);
function sumAll() {
var i, sum = 0;
for (i = 0; i < arguments.length; i++) {
sum += arguments[i];
}
return sum;
}
按值传递参数
函数中调用的参数是函数的隐式参数。
JavaScript 隐式参数按值传递:函数仅获取值。
如果函数更改参数的值,则显式参数(在函数外部定义)的初始值不会更改。
对隐式参数的更改在函数外部不可见。
通过对象传递参数
在 JavaScript 中,对象可以通过值引用。
所以我们在函数内部改变对象的属性就会改变它的初始值。
修改对象属性可以在函数外部应用(全局变量)。
修改后的对象属性在函数外部可见。
发表评论