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 JavaScript
JavaScript has a fixed set of falsy values
false
The 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.`);
}
});
Outputfalse 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.");
}
OutputConfiguration 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 Conversion
If 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");
Outputfalse
false
true
false
true
Related Articles
Similar Reads
JavaScript Basics JavaScript is a versatile, lightweight scripting language widely used in web development. It can be utilized for both client-side and server-side development, making it essential for modern web applications. Known as the scripting language for web pages, JavaScript supports variables, data types, op
6 min read
Functions in JavaScript Functions in JavaScript are reusable blocks of code designed to perform specific tasks. They allow you to organize, reuse, and modularize code. It can take inputs, perform actions, and return outputs.JavaScriptfunction sum(x, y) { return x + y; } console.log(sum(6, 9));Output15 Function Syntax and W
5 min read
JavaScript Glossary JavaScript is one of the most widely used programming languages for web development. This glossary concisely explains key JavaScript terms and concepts, making it easier to understand and reference them.Arrays: Used to store multiple values in a single variable. They are zero-indexed and can hold mi
6 min read
JavaScript Basic Quiz These JavaScript basic quiz questions are designed to help you test and enhance your foundational knowledge of JavaScript. Covering essential concepts, this quiz offers a great way to assess your understanding of the core features of JavaScript. The JavaScript quizzes are perfect for beginners and p
2 min read
JavaScript Boolean To represent logical values, JavaScript uses the Boolean data type, which has two possible values: true or false. These values often result from comparisons or logical operations. Additionally, the Boolean() function can convert other types of values into Boolean, determining their truthy or falsy n
4 min read