问题
为可选参数分配默认值的好方法是什么?
背景
我正在玩 JavaScript 中的可选参数,以及在未指定参数时分配默认值的想法。我的方法接受两个参数,我认为后者是可选的,如果未指定,则默认为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
方法内会更好吗?