JavaScript Truthy Value Explained with Examples


A truthy value is a value that translates to true when evaluated in a Boolean context.

All values are truthy unless they are defined as falsy (i.e. except for false , 0 , "" , null , undefined and NaN ).

Checking for Truthy Values on Variables

It is possible to check for a truthy value in a variable with a simple conditional:

if (variable) {
  // When the variable has a truthy value the condition is true.

You can also get the boolean value of a variable by using the bang operator ( ! ) twice:

!!variable // When the variable is truthy, a double bang (!!) will evaluate to the Boolean true.

Interesting JavaScript Rules concerning Truthy Values

These Are Interesting Truthy Values

  • ‘0’ (a string containing a single zero)
  • ‘false’ (a string containing the text “false”)
  • (an empty array)
  • {} (an empty object)
  • function(){} (an “empty” function)

Comparing Interesting Truthy Values

  • false , zero and '' (empty strings) are all equivalent.
  • null and undefined are equivalent to themselves and each other but nothing else.
  • NaN is not equivalent to anything – including another `NaN!
  • Infinity is truthy – but cannot be compared to true or false !
  • An empty array( [] ) is truthy – yet comparing with true is false and comparing with false is true ?!