JavaScriptでオプション(省略可能)な関数パラメーターを実装する最良の方法
デフォルトパラメーターを使えば簡単に実装できる
JavaScriptでオプション(省略可能)な関数パラメーターを実装する最も推奨される方法は、デフォルトパラメーター(既定値パラメーター)を使用することです。これは ES6(ECMAScript 2015)で導入された機能で、引数が渡されなかった場合に自動的に適用される初期値を、パラメーター宣言時に直接指定できます。
基本構文
function myFunc(a, b = 0) {
// 関数本体
}このように、パラメーター名の後に「=」とデフォルト値を記述するだけで、そのパラメーターは省略可能になります。呼び出し時に値が渡されなければ、自動的にデフォルト値が使用されます。
実際のサンプルコード
以下のコードを実行して、オプションの関数パラメーターの動作を確認してみましょう。
<html>
<body>
<script>
// デフォルト値は1に設定
function inc(val1, inc = 1) {
return val1 + inc;
}
document.write(inc(10, 10));
document.write("<br>");
document.write(inc(10));
</script>
</body>
</html>実行結果
20 11
解説
- 1回目の呼び出し
inc(10, 10)では、第2引数に10が明示的に渡されているため、10 + 10 = 20が出力されます。 - 2回目の呼び出し
inc(10)では第2引数が省略されているため、デフォルト値の1が使用され、10 + 1 = 11が出力されます。
デフォルトパラメーターを使うメリット
- コードがシンプルになる: 従来のように
typeofで引数の有無をチェックしたり、関数内で条件分岐して値を代入したりする必要がありません。 - 意図が明確になる: 関数のシグネチャを見るだけで、どの引数が省略可能で、省略時にどんな値になるのかがひと目でわかります。
- バグを防げる: 引数の渡し忘れによる
undefinedの意図しない演算などを未然に防止できます。
なお、古いブラウザー向けに ES5 以前の環境をサポートする必要がある場合は、typeof inc === 'undefined' のようなチェックで代替できますが、現代の開発ではデフォルトパラメーターを使うのが最良の選択です。
-
JavaScriptでイベントを追加する最良の方法とは?addEventListener()の使い方を徹底解説
任意の要素にイベントを追加する最良の方法は、addEventListener()メソッドを使用することです。このメソッドは、指定した要素に対してイベントリスナー(イベント発生時に実行される処理)を登録します。従来のonclick属性と異なり、1つの要素に複数のイベントハンドラを追加できるため、現代のWeb開発では標準的な手法とされています。 addEventListener()メソッドの基本構文 element.addEventListener(event, function, useCapture); event: 監視したいイベントの種類(例: 「click」「mouseover」「ke
-
JavaScriptで新しいブラウザウィンドウを開く最良の方法とは?window.open()の使い方を解説
JavaScriptで新しいブラウザウィンドウを開くには、windowオブジェクトのopen()メソッドを使うのが最も標準的で確実な方法です。 window.open()メソッドは、指定したURLを新しいウィンドウ(またはタブ)で開きます。第2引数でウィンドウ名、第3引数でサイズや位置などの表示特性を指定することも可能です。 window.open()の基本構文 window.open(URL, name, features); URL: 開きたいページのアドレス(必須) name: ウィンドウの名前またはターゲット属性(例: _blank)(省略可) features: ウィンドウの幅・高