Check if variable is false and not either true or undefined

Haradzieniec picture Haradzieniec · Sep 25, 2014 · Viewed 57.6k times · Source

What's the best way to check if myvar javascript variable === false or not (it may be undefined as well).

if (myvar === false)

would be fine but myvar it could be undefined. Only false value is acceptable, not undefined.

Any shorter than if (typeof myvar !== "undefined" && myvar === false)?

Answer

Quentin picture Quentin · Sep 25, 2014

If the variable is declared then:

if (myvar === false) {

will work fine. === won't consider false to be undefined.

If it is undefined and undeclared then you should check its type before trying to use it (otherwise you will get a reference error).

if(typeof myvar === 'boolean' && myvar === false) {

That said, you should ensure that the variable is always declared if you plan to try to use it.

var myvar;
// ...
// some code that may or may not assign a value to myvar
// ...
if (myvar === false) {