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
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. [GFGTABS] JavaScript function sum(x, y) { return x + y; } console.log(sum(6, 9)); [/GFGTABS]Output1
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 m
6 min read
JavaScript Ellipsis
JavaScript Ellipsis (also known as the spread/rest operator) is represented by three dots (...). It is used for various tasks, such as spreading elements of an array into individual values or collecting multiple values into an array or object. It simplifies data manipulation and function parameter h
3 min read
JavaScript Function Examples
A function in JavaScript is a set of statements that perform a specific task. It takes inputs, and performs computation, and produces output. The idea is to put some commonly or repeatedly done tasks together and make a function so that instead of writing the same code again and again for different
3 min read
JavaScript Arrays
In JavaScript, an array is an ordered list of values. Each value is called an element, and each element has a numeric position in the array, known as its index. Arrays in JavaScript are zero-indexed, meaning the first element is at index 0, the second at index 1, and so on. 1. Create Array using Lit
7 min read
Fuzzy Search in JavaScript
Fuzzy search in JavaScript is a powerful technique used to enhance search functionality by finding matches that are approximately similar to the search query, rather than requiring exact matches. This approach is useful in scenarios where users might make typographical errors, use different forms of
1 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 Array Exercise
In JavaScript, an Array is a versatile data structure that allows you to store multiple values in a single variable. Arrays can hold different data types, including strings, numbers, objects, and even other arrays. JavaScript arrays are dynamic, which means they can grow or shrink in size. [GFGTABS]
1 min read
JavaScript get Function
JavaScript get function is used to access the properties of an object using dot notation or square brackets. It allows you to retrieve the value associated with a particular property key and the get function is often used when working with objects that implement JavaScript's getter function. The get
3 min read
What is JavaScript ?
JavaScript is a powerful and flexible programming language for the web that is widely used to make websites interactive and dynamic. JavaScript can also able to change or update HTML and CSS dynamically. JavaScript can also run on servers using tools like Node.js, allowing developers to build entire
6 min read