Search code examples
javascripttypescriptvariablestruthyfalsy

How to check if variable is not falsy but 0 passes in Javascript


Is there an elegant way to check if variable is NOT falsy but in case of 0 it passes. The issue with this way of verifying if(var !== undefined && var !== null) is that it's long and doesn't cover all cases like undecalred or NaN. I'm also using typescript and declare it as optional number.


Solution

  • You can do exactly what your first sentence asks:

    if (!x && x !== 0)
    

    means literally "if x is falsy and x is not 0".

    Also the == and != comparison operators explicitly consider null and undefined to be equal, so

    if (x != null)
    

    is true for both null and undefined. (That's !=, not !==.)