JS 函数参数

创建时间:2019.02.21 修改时间:2019.03.24

JS 的参数规则

JS 函数定义参数时没有指定数据类型。因此,在调用函数时,对输入的参数值也没有进行类型检测。

在调用函数时,JS 没有对输入的参数个数进行检测。因此,输入的参数少于或多于函数定义的参数个数时不会报错。

自定义参数默认值

未提供的参数默认值为:undefined(未定义)

可以在函数中为参数设置一个默认值。

function myFunction(x, y) {
    if (y === undefined) {
          y = 0;
    }
}

使用条件运算符,简化为:

function myFunction(x, y) {
    y = (y === undefined)?0:y;
}

更简单的方式:

function myFunction(x, y) {
    y = y || 0;
}

y||0 中,如果 y 为 undefined(转换为 false),返回 0(|| 后的值);y 如果为其他值(代表 true),返回 y(|| 前的值)。

最简便的方式:

JS 支持函数带有默认参数。

function myFunction(x, y = 10) {
    return x + y;
}

myFunction(0, 2);    //  输出 2
myFunction(5);    //  输出 15, y 参数的默认值是 10

捕捉所有参数值

JS 中可以不限个数输入参数值,所有参数值保存在函数的内置数组 arguments 的元素中。

查找所有参数中的最大值:

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 < arguments.length; i++) {
        if (arguments[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;
}