函数参数

2018-03-03大约2分钟

看看下面的代码运行时,会出现什么结果?

function add(value1, value2) {
    return value1 + value2;
}

let result = add(1);    // 调用函数add,但不小心只传了一个参数
console.log(result);

result = add(1, 2, 3);    // 调用函数add,多传了一个参数
console.log(result);

为什么代码没有报错?

那是因为:JavaScript的函数的参数调用要求并不是很严格,可以少传,甚至还可以多传!对于少传的参数,默认情况下都是undefined,多传的参数由于函数体通常用不到就不起作用。

如果不想让默认参数值时undefined,换成其他的值可以吗?可以,定义函数的时候,为需要默认值的参数设置一个默认值就可以了:

function add(value1, value2 = 2) {   // 我们给参数value2设置了一个默认值2
    return value1 + value2;
}

const result = add(1);
console.log(result);

这样,函数参数的默认值就不再是undefined了。