Falsy Values in JavaScript

Published: Monday, May 16, 2022

Greetings, friends! When working with Boolean contexts such as in if statements and for loops, you'll need to know what values make the condition fail due to a falsy value. The most common falsy values you'll encounter when coding in JavaScript are the following:

  • The false boolean value
  • The number 0
  • An empty string using double quotes "", single quotes '', or a template literal
  • The null value
  • The undefined value
  • NaN (not a number)

All of these values will cause a boolean condition to fail:

javascript
Copied! ⭐️
if (false) {
  console.log('1. You will see me if the condition is truthy.');
} else {
  console.log('1. You will see me if the condition is falsy.');
}

if (0) {
  console.log('2. You will see me if the condition is truthy.');
} else {
  console.log('2. You will see me if the condition is falsy.');
}

if ("") {
  console.log('3. You will see me if the condition is truthy.');
} else {
  console.log('3. You will see me if the condition is falsy.');
}

if ('') {
  console.log('4. You will see me if the condition is truthy.');
} else {
  console.log('4. You will see me if the condition is falsy.');
}

if (``) {
  console.log('5. You will see me if the condition is truthy.');
} else {
  console.log('5. You will see me if the condition is falsy.');
}

if (null) {
  console.log('6. You will see me if the condition is truthy.');
} else {
  console.log('6. You will see me if the condition is falsy.');
}

if (undefined) {
  console.log('7. You will see me if the condition is truthy.');
} else {
  console.log('7. You will see me if the condition is falsy.');
}

if (NaN) {
  console.log('8. You will see me if the condition is truthy.');
} else {
  console.log('8. You will see me if the condition is falsy.');
}

/* OUTPUT:
1. You will see me if the condition is falsy.
2. You will see me if the condition is falsy.
3. You will see me if the condition is falsy.
4. You will see me if the condition is falsy.
5. You will see me if the condition is falsy.
6. You will see me if the condition is falsy.
7. You will see me if the condition is falsy.
8. You will see me if the condition is falsy.
*/

The code snippet above may look bizarre in JavaScript, but I just wanted to prove that these values are indeed falsy 😅. The conditional statement in every if statement will fail due to the falsy values, causing the else block to run.

Notice that an empty array [] and empty object {} are not on this list. These are considered truthy in JavaScript.

javascript
Copied! ⭐️
const emptyArray = [];
const emptyObject = {};

if (emptyArray) {
  console.log('1. You will see me if the condition is truthy.');
} else {
  console.log('1. You will see me if the condition is falsy.');
}

if (emptyObject) {
  console.log('2. You will see me if the condition is truthy.');
} else {
  console.log('2. You will see me if the condition is falsy.');
}

/* OUTPUT: 
1. You will see me if the condition is truthy.
2. You will see me if the condition is truthy.
*/

Resources