JavaScript 関数のデフォルトのパラメータ値を設定する 質問する

JavaScript 関数のデフォルトのパラメータ値を設定する 質問する

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

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

これは JavaScript で動作しますか?

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

ベストアンサー1

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

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

ただ動作します。

参照:デフォルトパラメータ - MDN

デフォルトの関数パラメータを使用すると、値が渡されないundefined が渡された場合に、仮パラメータをデフォルト値で初期化できます

ES6では、構造化分解によりデフォルトの名前付きパラメータをシミュレートする:

// 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
    ···
}

// sample call using an object
myFor({ start: 3, end: 0 });

// also OK
myFor();
myFor({});

ES2015以前

方法はたくさんありますが、これは私が好む方法です。false や null など、必要なものを何でも渡すことができます。( typeof null == "object")

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

おすすめ記事