Description
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,zeroand''(empty strings) are all equivalent. -
nullandundefinedare equivalent to themselves and each other but nothing else. -
NaNis not equivalent to anything – including another `NaN! -
Infinityis truthy – but cannot be compared totrueorfalse! - An empty array(
[]) is truthy – yet comparing withtrueisfalseand comparing withfalseistrue?!