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