javascript 参数函数-JavaScript 函数参数

文章目录

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 中,对象可以通过值引用。

所以我们在函数内部改变对象的属性就会改变它的初始值。

修改对象属性可以在函数外部应用(全局变量)。

修改后的对象属性在函数外部可见。