javascriptvariablesif-statementundefined

Check if variable is false and not either true or undefined


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 could be undefined. Only false value is acceptable, not undefined.

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


Solution

  • 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) {