JavaScript:处理函数参数,默认值为true

时间:2014-10-29 02:14:57

标签: javascript

有没有办法为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可以是truefalse(而false对于这种情况不起作用,因为它只会评估为真。)

2 个答案:

答案 0 :(得分:1)

如果您想明确表示您为此参数提供的默认值为true,那么您可以咨询arguments.length

bool = arguments.length ? bool : true;

bool = bool || !arguments.length;

答案 1 :(得分:0)

怎么样

(bool == null) ? true : bool;

正如@RobG所提到的,我们甚至可以通过这个更加简洁:

(bool == null) || bool;