JavaScriptの関数にデフォルトのパラメータ値を設定する
JavaScriptの関数に、デフォルトを設定したオプションの引数を持たせ、その値が定義されていない場合には使用される(値が渡された場合には無視される)ようにしたいと考えています。Rubyでは次のようにできます。
def read_file(file, delete_after = false)
# code
end
これはJavaScriptでも使えますか?
function read_file(file, delete_after = false) {
// Code
}
2271
3
ES6/ES2015]1より、デフォルトのパラメータは言語仕様にあります。
がちょうど動作します。
参考にしてください。Default Parameters - MDNを参照してください。
また、destructuringによるデフォルトの名前付きパラメータをシミュレートすることもできます。
ES2015以前。
いろいろな方法がありますが、私はこの方法を気に入っています。(
typeof null == "object"
)これは、
delete_after
の値がfalseでなければdelete_after
の値を、そうでなければ文字列"my default here"
を、delete_after
に割り当てます。詳しくは、Doug Crockford's survey of the language and check out the section on Operatorsをご覧ください。この方法は、
false
、null
、undefined
、0
、""
などのfalseyな値を渡したい場合には使えません。もしfalseyな値を渡したい場合は、[Tom Ritter's answer][2]の方法を使う必要があります。関数のパラメータを多数扱う場合、コンシューマがパラメータ引数をオブジェクトで渡し、その値を関数のデフォルト値を含むオブジェクトに merge することができると便利な場合があります。
を使用します。
[2]: https://stackoverflow.com/questions/894860/how-do-i-make-a-default-value-for-a-parameter-to-a-javascript-function/894877#894877
このようなシンプルなものの方が、個人的にはずっと簡潔で読みやすいと思います。