1. ホーム
  2. ジャバスクリプト

[解決済み】JavaScriptの関数にデフォルトのパラメータ値を設定する

2022-03-18 06:50:38

質問

JavaScriptの関数にオプションの引数を持たせて、デフォルトを設定し、その値が定義されていない場合は使用される(値が渡された場合は無視される)ようにしたいのですが、どうすればいいですか?Rubyではこのようにできます。

def read_file(file, delete_after = false)
  # code
end

これはJavaScriptで動作するのですか?

function read_file(file, delete_after = false) {
  // Code
}

解決方法は?

から ES6/ES2015 デフォルトのパラメータは言語仕様にあります。

function read_file(file, delete_after = false) {
  // Code
}

が動作するだけです。

参考にしてください。 デフォルトのパラメータ - MDN

<ブロッククオート

デフォルトの関数パラメータは、次のような場合にフォーマルパラメータをデフォルト値で初期化することができます。 値なし または 未定義 が渡されます。

また、以下のことも可能です。 デフォルトをシミュレートする という名前の のパラメータを使用します。 :

// the `= {}` below lets you call the function without any parameters
function myFor({ start = 5, end = 1, step = -1 } = {}) { // (A)
    // Use the variables `start`, `end` and `step` here
    ···
}

ES2015の前 ,

いろいろな方法がありますが、私が気に入っているのはこの方法です。この方法では、falseやnullなど、何でも渡すことができます。( typeof null == "object" )

function foo(a, b) {
  a = typeof a !== 'undefined' ? a : 42;
  b = typeof b !== 'undefined' ? b : 'default_b';
  ...
}