我通常这样设置对象属性:
// Boolean
this.listening = config.listening || true;
但是config.listening
只能是true或false,在这种情况下,this.listening
将始终为true,因为如果config.listening
为false,则它将等于true。
有没有更好的方法来设置这些布尔属性而不必使用if语句?
在JavaScript中是否有类似于isset函数的方式来检查它是否存在,而不是它等于什么?
我通常这样设置对象属性:
// Boolean
this.listening = config.listening || true;
但是config.listening
只能是true或false,在这种情况下,this.listening
将始终为true,因为如果config.listening
为false,则它将等于true。
有没有更好的方法来设置这些布尔属性而不必使用if语句?
在JavaScript中是否有类似于isset函数的方式来检查它是否存在,而不是它等于什么?
您可以像这样使用三元(条件)运算符:
this.listening = config.listening === false ? false : true;
如果config.listening
为false
,则this.listening
被设置为false
。如果它的值是其他任何值,则将其设置为true
。
如果您想检查它是否已定义,可以使用:
this.listening = typeof config.listening !== "undefined"
参考资料:
您需要检查以确保它不是未定义的,而不是它是一个“假值”。
this.listening = config.listening!==undefined ? config.listening : true;
typeof config.listening !== "undefined"
是否更好,还是仅仅为了可读性考虑? - user2251919