In JavaScript, things can be true
, or false
, but they can also be truthy
or falsy
. The concept of truthy
and falsy
are usually considered only in a boolean context, like in an if..else
statement, but they also affect other parts of JavaScript - for example, what is returned from the logical OR operator.
Something is considered falsy
in JavaScript if it can be converted to false
. In the same way, something is truthy
simply if it is not considered falsy
.
While falsy
may seem like a vague statement, it actually has a specific definition.
The following values are considered falsy
:
false
0
or -0
or 0n
""
null
undefined
NaN
Similarly, anything that is not equal to these is considered truthy
, for example:
{}
, or []
.null
, undefined
, or NaN
value.truthy
and falsy
values have implications in JavaScript logic. For example, anything that can be converted to truthy
in a boolean setting (such as if..else
) is converted to true
, and the same goes for falsy
statements.
For example, the following if
statement is true
, simply because "1"
is a truthy
statement:
if("1") {
console.log('ok');
}
If the statement instead said if(0)
, it would return false, since 0
is falsy
. As you get into JavaScript, you'll find references to truthy
and falsy
everywhere, so it's good to familiarise yourself with the concept now.