Truthy Values in JavaScript
In JavaScript, a value is truthy if JavaScript's built-in type coercion converts it to true
.
Every value is either truthy or falsy, so
any value that isn't falsy must be truthy.
Truthy and falsy usually come up in the context of if
statements. For
example, the below if
statement will print if and only if v
is truthy.
if (v) {
console.log('v is truthy!');
}
Remember that there are only 7 values in JavaScript that are falsy:
Every other value is truthy. For example, even a Boolean
object containing false
is truthy.
const v = new Boolean(false);
// Will print! All JavaScript objects are truthy.
if (v) {
console.log('v is truthy!');
}
With the Logical NOT Operator
The logical NOT operator in JavaScript converts truthy values to false
and
falsy values to true
. In other words, the logical !
operator lets
you store the value JavaScript's built-in boolean coercion converts v
into.
// `b` will be false if `v` is truthy
const b = !v;
You might see the logical NOT operator twice in a row: !!v
. This is
how you convert a value to a boolean using JavaScript's built-in coercion.
// `isTruthy` is true if and only if `v` is truthy.
const isTruthy = !!v;