質問
オプションのパラメータにデフォルト値を割り当てる良い方法は何ですか?
バックグラウンド
私は JavaScript でオプションのパラメーターをいじっており、パラメーターが指定されていない場合にデフォルト値を割り当てるという考えがあります。問題の私のメソッドは 2 つのパラメーターを受け入れます。後者はオプションであると考えており、指定されていない場合はデフォルトでfalse
. 私の方法は次のようになります...
// selects the item, appropriately updating any siblings
// item to select [, toggle on / off]
this.selectItem = function(item, toggle)
{
toggle = toggle && typeof toggle === 'boolean';
if (toggle)
{
// ...
}
}
テスト
この jsFiddleでいくつかのテストを実行した後、デフォルト値の割り当てに次のプリンシパルを使用します。
function checkParamIsBoolean(param)
{
param = param && typeof param === 'boolean';
}
checkParamIsBoolean('me'); // boolean
checkParamIsBoolean([]); // boolean
checkParamIsBoolean(true); // boolean
checkParamIsBoolean(false); // boolean
checkParamIsBoolean(1 == 1); // boolean
checkParamIsBoolean(1); // boolean
checkParamIsBoolean(null); // object
checkParamIsBoolean(undefined); // undefined
可能な限り、結果はさまざまであり、望ましくありません。
期待される
null
= false
undefined
=false
実際
null
= object
undefined
=undefined
概要
指定されていない場合、オプションのパラメーターにデフォルト値を割り当てる代替アプローチはありますか? _toggle
パラメータとして使用し、メソッド内で値を割り当てる方がよいでしょうvar toggle
か?