10

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

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

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

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

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

4

2 回答 2

16

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

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

如果config.listeningfalsethis.listening则设置为false。如果它是任何其他值,则设置为true.

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

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

参考:

于 2013-05-08T13:33:28.137 回答
3

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

this.listening = config.listening!==undefined ? config.listening : true;
于 2013-05-08T13:34:51.637 回答