"Falsy" Mishaps in JavaScript

I sometimes see web developers check for falsy values incorrectly in JavaScript. It's easy to get wrong. Here are a few common mistakes.

Missing Null

if (myVariable === undefined)  

This is probably the most frequent mistake I see. While this catches undefined properly, it doesn't guard against reference errors when myVariable is null. Unless you're explicitly trying to exclude null from your check, this will result in a null reference error if you try to access a property on myVariable.


Missing Undefined

if(myVariable === null)  

I don't see this as often, but it does happen. While this catches null properly, it does guard against reference errors when myVariable is undefined.


Excluding Too Much

if(myVariable)  

This check works fine if you don't want your logic to execute when you have null, undefined, false, zero (integer value), or empty string. The last two are sometimes overlooked as you may want your logic to execute when you have a zero or an empty string.


Capturing Null And Undefined In One

if(myVariable == null)  

If you're looking to checking for undefined and null in one statement, use type coercion to your advantage with the statement above. The statement above will evaluate to true when you have either. One of the few times I recommend using type coercion in JavaScript. Neat!