有没有办法为var x = false || true;
制作速记?因为提供的示例始终求值为true。例如,在此函数中:
function load(bool) {
loading = bool || true;
}
loading
始终被评估为真。
在lodash的帮助下,我尝试了loading = ( !_.isUndefined(bool) ) ? bool : true;
。否则,它可能被写为loading = ( typeof bool !== undefined ) ? bool : true;
。但我觉得这很冗长。
编辑:出于澄清目的,我想要x = false || false
更好的解决方法(与我的尝试相比),其中bool可以是true
或false
(而false
对于这种情况不起作用,因为它只会评估为真。)
答案 0 :(得分:1)
如果您想明确表示您为此参数提供的默认值为true,那么您可以咨询arguments.length
:
bool = arguments.length ? bool : true;
或
bool = bool || !arguments.length;
答案 1 :(得分:0)
怎么样
(bool == null) ? true : bool;
正如@RobG所提到的,我们甚至可以通过这个更加简洁:
(bool == null) || bool;