Why 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(); //預設打招呼

參考資料