有没有什么办法可以简化var x = false || true;
?因为提供的示例总是评估为true。例如,在此功能中:JavaScript:处理函数参数的默认值为true
function load(bool) {
loading = bool || true;
}
loading
始终评估为true。
随着lodash的帮助下,我尝试loading = (!_.isUndefined(bool)) ? bool : true;
。否则,它可能被写为loading = (typeof bool !== undefined) ? bool : true;
。但我发现这是冗长冗长的。
编辑:澄清的目的,我想一个更好的解决办法(相比,我的尝试)为x = false || false
,其中布尔既可以是true
或false
(和false
不会出现这种情况的工作,因为它会评估只为真)。
'不管||除非第一个不是布尔表达式(并且未评估为undefined,null,“”,0),否则true'总是'true'。 – 2014-10-29 02:16:06
看起来你想'typeof bool =='undefined'? true:bool',但我无法想象你为什么要这样做。 – RobG 2014-10-29 02:20:51
你想要应用什么逻辑?如果它是'undefined',它应该是'true',否则它应该是'!! bool'? – deceze 2014-10-29 02:24:12