I usually set object properties like so,
// Boolean
this.listening = config.listening || true;
But config.listening
is either true or false, and in this case this.listening
will always be true because if config.listening
is false it will equal true.
Is there a better way to set these boolean properties without having to do an if statement?
Is there a if isset function in javascript to check it exists rather than what it equals to?
I usually set object properties like so,
// Boolean
this.listening = config.listening || true;
But config.listening
is either true or false, and in this case this.listening
will always be true because if config.listening
is false it will equal true.
Is there a better way to set these boolean properties without having to do an if statement?
Is there a if isset function in javascript to check it exists rather than what it equals to?
Share Improve this question asked May 8, 2013 at 13:32 user2251919user2251919 6752 gold badges11 silver badges23 bronze badges2 Answers
Reset to default 17You could use the ternary (conditional) operator like this:
this.listening = config.listening === false ? false : true;
If config.listening
is false
, this.listening
is set to false
. If it's any other value, it's set to true
.
If you want to check if it's defined, you could use:
this.listening = typeof config.listening !== "undefined"
References:
- https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Operators/Conditional_Operator
You need to check to make sure it is not undefined, not that it is a "falsey" value.
this.listening = config.listening!==undefined ? config.listening : true;