JavaScriptの関数のデフォルト引数の使い方を解説!
ES2015(ES6)からJavaScriptの関数のデフォルト引数がサポートされ、冗長なコードを書く必要なく初期値を設定することが可能になりました。この記事ではサンプルコードを用いて、JavaScriptの関数のデフォルト引数の使い方を解説しています。
JavaScriptの関数のデフォルト引数の使い方
ES2015以前は関数内で引数が渡されなかった時には、引数の値がundefined
になることを利用し、if
文などの条件分岐により初期値を設定していました。
ES2015(ES6)からJavaScriptの関数のデフォルト引数がサポートされ、上記のような冗長なコードを書く必要なく初期値を設定することが可能になりました。
下記のような構文でデフォルト引数を使うことができます。
index.js
function method(argument = 'default'){
return 'Hello ' + argument;
}
method
関数の引数argument
に初期値'default'
を設定しています。これでmethod
関数に引数が渡さずに実行した場合でも、エラーや意図しなかった結果にならずに'Hello default'
という文字列が戻り値として返ってきます。
JavaScriptの関数のデフォルト引数を使ったサンプルコード
ここではわかりやすくサンプルコードを使って、JavaScriptの関数のデフォルト引数の使い方を見ていきましょう。
デフォルト引数を設定
まずはデフォルト引数を指定せずに関数を定義した上で、関数実行時に引数を省略してみます。
引数を省略した状態でsum
関数を実行すると、NaN
が戻り値として返ってきていることが確認できます。
NaN(Not-A-Number)
とは非数(数字ではないこと)を表すNumber
型の特別な値です。
sum
関数の戻り値は数字であることを期待しているのに、実際、引数を省略した場合は非数のNaN
が返ってきてしまいます。
引数を省略した場合にもこうした「想定しなかった値が返ってくる」自体を避けるため、デフォルト引数を設定していきたいと思います。
今回はデフォルト引数としてa=1
とb=2
を設定しているため、同じように引数を省略した状態でsum
関数を実行しましたが3
という数字が返ってきていることが確認できます。
また、引数を省略せずに指定した場合はしっかり引数の値が反映された結果が返ってきます。
a
に3
とb
に7
の引数を指定してsum
関数を実行すると、デフォルト引数ではなく指定した引数が反映され10
という数字が戻り値として返ってきていることが確認できました。
一部にデフォルト引数を設定
デフォルト引数は第一引数は指定せず、第二引数のみ指定するなどの使い方もできます。
今回、第一引数a
にはデフォルト引数を指定せずに第二引数b
にのみデフォルト引数を指定しました。
sum
関数を実行する際に指定した引数3
はa
に渡されて、b
にはデフォルト引数2
が適用されて5という結果が反映されています。
これは関数を実行する際に指定した引数は左から順番にセットされるという性質があるために上手く動作しています。
もし、sum
関数の第一引数a
にデフォルト引数を指定し、第二引数b
にはデフォルト引数を指定せず、sum
関数に1つだけ引数を渡して実行した場合には第二引数には何も数値が指定されず(実際にはundeuined
という値になる)、NaN
という値が戻り値として返ってくることになるので注意しましょう。
まとめ
関数を作成する際には、ぜひデフォルト引数を活用して自分が想定した動きになるよう実装できるようになりましょう。
