2016年03月01日

【JavaScript】引数のデフォルト値を定義する

これまたとっくに出し尽くされている、かつES6で解決するネタではありますが・・・

先日質問されたことがあるので、念のため掲載。

と言うか、以下サンプル。


function triangle(base, height) {
  if (base == undefined) {base = 1;}
  if (height == undefined) {height = 1;}

  return base * height / 2;
}

alert(triangle(2, 2)); // 2
alert(triangle(5));     // 2.5
alert(triangle());       // 0.5


JavaScriptでは、関数を呼び出す際に引数の個数をチェックしません。

また、指定されていない引数には、全てundefinedがセットされます。

この仕様を利用して、上述したような感じにすればいい訳です。



なお、上述のようなやり方では、二つ目以降の引数や、3つ以上ある引数の途中だけを省略するような事は実現できません。

これはこれで、別の方法があるのですが、こちらについてはまた後日。





ウサコのLINEすたんぷ好評配信中!

https://store.line.me/stickershop/product/1014321/ja

posted by kinky-do at 20:38| JavaScript