ES2015以前,如果我们想要给某个函数的参数设置参数默认值,需要在函数体中通过逻辑代码来实现。
// ES2015以前我们需要在函数体中通过逻辑代码来实现
function foo(param){
param = param === undefined ? true : param;
console.log(param)
}
foo() // true
ES2015以后,实现方法就简单方便多了,直接在参数后面对它赋默认值:
function foo(param = true){
console.log(param)
}
foo() // true
如果函数有多个参数,带有默认值的形参一定要出现在参数列表的最后,因为参数是按照次序传递的。
function sum (a = 10, b = 5) {
return a + b;
}
console.log(sum(1, 2)); // 3
console.log(sum(5)); // 10
console.log(sum()); // 15
// 当需要第一个参数使用默认值,而指定第二个参数时,需要显式指定第一个参数值为undefined
// 需要注意,当显式指定参数为null时,是不会使用默认值的
console.log(undefined, 10); // 20