Last Updated : 23 Jul, 2025
In JavaScript, falsy values are those that are evaluated as false when used in a Boolean. Unlike truthy values, falsy values represent "nothingness," "emptiness," or "failure."
If you're writing conditional statements or logical operations, understanding falsy values is very important because these are the only values JavaScript treats as false. Here’s the rule: If a value is not one of JavaScript’s falsy values, it is truthy.
List of Falsy Values in JavaScriptJavaScript has a fixed set of falsy values
falseThe Boolean value false is, naturally, falsy.
JavaScript
if (false) console.log("This will not run.");
0 (Zero)
The number 0 is falsy, regardless of whether it’s positive or negative zero.
JavaScript
if (0) console.log("This will not run.");
if (-0) console.log("This will also not run.");
0n (BigInt Zero)
The BigInt value 0n is falsy.
JavaScript
if (0n) console.log("This will not run.");
"" (Empty String)
Strings without any characters (empty strings) are falsy, but strings with whitespace or content are truthy.
JavaScript
if ("") console.log("This will not run.");
null
null represents the intentional absence of any object value and is falsy.
JavaScript
if (null) console.log("This will not run.");
undefined
undefined represents a variable that has been declared but not assigned a value. It is falsy.
JavaScript
let value;
if (value) console.log("This will not run.");
NaN (Not-a-Number)
NaN is the result of invalid or undefined mathematical operations and is falsy.
JavaScript
if (NaN) console.log("This will not run.");
document.all
This is a quirky value used for backward compatibility in web browsers. Although technically an object, it is treated as falsy.
JavaScript
if (document.all) console.log("This will not run.");
Now let’s see how JavaScript handles these falsy values in action
JavaScript
const fValues = [false, 0, -0, 0n, "", null, undefined, NaN];
fValues.forEach(value => {
if (value) {
console.log(`${value} is truthy.`);
} else {
console.log(`${value} is falsy.`);
}
});
false is falsy. 0 is falsy. 0 is falsy. 0 is falsy. is falsy. null is falsy. undefined is falsy. NaN is falsy.Why Falsy Values Matter?
Understanding falsy values can help avoid common pitfalls in JavaScript
Default Values with || (Logical OR):You can use || to provide a default value if the left operand is falsy.
JavaScript
let username = "";
let displayName = username || "Guest";
console.log(displayName);
Short-Circuit Evaluation
Falsy values cause logical operations to short-circuit.
JavaScript
let result = 0 && "This won't be evaluated";
console.log(result);
Conditional Statements:
Falsy values are often used in if conditions to check for the existence or validity of a value.
JavaScript
let config = null;
if (!config) {
console.log("Configuration is missing.");
}
Configuration is missing.Common Pitfalls with Falsy Values Empty Strings vs. Strings with Whitespace JavaScript
if ("") console.log("Falsy"); // Will not run
if (" ") console.log("Truthy"); // Will run
Zero vs. Non-Zero Numbers JavaScript
if (0) console.log("Falsy"); // Will not run
if (-1) console.log("Truthy"); // Will run
null vs. undefined
Although both are falsy, they are used differently. null often represents a absence of a value, while undefined usually indicates it is not yet initialize.
Explicit Boolean ConversionIf you want to explicitly determine whether a value is falsy, you can use the Boolean function or the double negation operator !!.
JavaScript
console.log(Boolean(0));
console.log(Boolean(""));
console.log(Boolean([]));
console.log(!!null);
console.log(!!"hello");
false false true false trueRelated Articles
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4