我通常设置像这样的对象属性,
// Boolean
this.listening = config.listening || true;
但是config.listening
要么是真的要么是假的,在这种情况下this.listening
将永远为真,因为如果config.listening
为假,它将等于真。
有没有更好的方法来设置这些布尔属性而不必执行if语句?
在javascript中是否存在if isset函数来检查它是否存在而不是它等于什么?
答案 0 :(得分:13)
您可以像这样使用三元(条件)运算符:
this.listening = config.listening === false ? false : true;
如果config.listening
为false
,则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。