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
,zero
and''
(empty strings) are all equivalent. -
null
andundefined
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 totrue
orfalse
! - An empty array(
[]
) is truthy – yet comparing withtrue
isfalse
and comparing withfalse
istrue
?!