Why Do You Need JavaScript Default Parameters?

为什么你需要 JavaScript 预设参数?

参数与引数 Parameters and Arguments

参数代表一个值你期望函式所接收;引数则是函式呼叫时所传递的值。概念上很容易理解,但实际上容易混淆 😅,有一个使用斜音开头的方式来记忆它们我觉得蛮有效的:

  • 参数(占位符):Parameter → Placeholder
  • 引数(实际值):Argument → Actual value
function example(parameter) {
// ...
}
example(argument);

发现问题

要了解预设参数,就要从现有的问题说起。在 JavaScript 中函式可以使用任意数量的参数与引数,但如果参数没有对应的引数将导致该变数成为未定义。

function greeting(message) {
console.log(message);
}
greeting(); // undefined

使用预设参数

使用预设参数语法,只需要在参数后面加上等号与预设值即可,当没有引数时就会自动使用参数预设值。

function greeting(message = '预设打招呼') {
console.log(message);
}
greeting(); // 预设打招呼

如果不使用预设参数,就会需要这样写:

function greeting(message) {
if (typeof message === 'undefined') {
message = '预设打招呼';
}
console.log(message);
}
greeting(); //预设打招呼

参考资料