如何使用默认值true轻松地将变量设置为false?

时间:2013-05-08 13:32:11

标签: javascript properties boolean

我通常设置像这样的对象属性,

// Boolean
this.listening = config.listening || true;

但是config.listening要么是真的要么是假的,在这种情况下this.listening将永远为真,因为如果config.listening为假,它将等于真。

有没有更好的方法来设置这些布尔属性而不必执行if语句?

在javascript中是否存在if isset函数来检查它是否存在而不是它等于什么?

3 个答案:

答案 0 :(得分:13)

您可以像这样使用三元(条件)运算符:

this.listening = config.listening === false ? false : true;

如果config.listeningfalse,则this.listening设置为false。如果是任何其他值,则将其设置为true

如果要检查是否已定义,可以使用:

this.listening = typeof config.listening !== "undefined"

<强>参考文献:

答案 1 :(得分:3)

您需要检查以确保它未定义,而不是它是“假”值。

this.listening = config.listening!==undefined ? config.listening : true;

答案 2 :(得分:-1)

最快的方法就是这样。

d = true;

d返回true。

然后只需使用!运算符将布尔值从true切换为false。

d = !d;

d返回false。

然后一次又一次。

d = !d;

d返回true。