問題一覧に戻る
中級functions
問題68: 関数のデフォルト値応用

オブジェクトの分割代入とデフォルト値を組み合わせた高度なテクニックを学びましょう。関数のパラメータでオブジェクトの分割代入を使い、各プロパティにデフォルト値を設定できます。さらに、パラメータ全体にもデフォルト値を設定することで、関数呼び出し時に引数を省略した場合の対応もできます。このパターンはAPIの設定オブジェクトやオプションパラメータの実装でよく使われます。

// オブジェクトのデフォルト値
// 挨拶
function greet({ name "ゲスト" } = {}) {
return "こんにちは、" + name + "!";
}

console.log("挨拶1: " + greet());
console.log("挨拶2: " + greet({ name: "太郎" }));

// 設定
function configure({ port = 3000, debug false } = {}) {
return `ポート:${port}, デバッグ:${debug}`;
}

console.log("設定: " + configure());