在javascript函数中为布尔参数设置默认值

时间:2014-06-20 17:41:36

标签: javascript

我已经使用typeof foo !== 'undefined'来测试javascript函数中的可选参数,但是如果我希望每次都有truefalse这个值,那么最简单,最快还是最彻底的是什么?办法?看起来它可能比这更简单:

function logBool(x) {
    x = typeof x !== 'undefined' && x ? true : false;
    console.log(x);
}

var a, b = false, c = true;
logBool(a); // false
logBool(b); // false
logBool(c); // true

1 个答案:

答案 0 :(得分:20)

你可以跳过三元组,并评估“不是不是x”,例如!!x

如果x未定义,则!x为真,因此!!x再次变为false。如果x为true,则!x为false,因此!!x为真。

function logBool(x) {
    x = !!x;
    console.log(x);
}

var a, b = false, c = true;
logBool(a); // false
logBool(b); // false
logBool(c); // true