Episode 12 of 46

Booleans in JavaScript

Learn about boolean values, truthy/falsy concepts, and type coercion.

A boolean is a data type that can only be one of two values: true or false.

Basic Booleans

let isLoggedIn = true;
let isAdmin = false;

console.log(isLoggedIn);    // true
console.log(typeof isAdmin); // "boolean"

Comparison Results

Comparisons always return a boolean:

console.log(5 > 3);     // true
console.log(10 === 10); // true
console.log("a" === "b"); // false

Truthy and Falsy Values

In JavaScript, every value is either truthy or falsy when used in a boolean context.

Falsy values (evaluate to false):

false
0
"" (empty string)
null
undefined
NaN

Everything else is truthy, including:

"hello"   // non-empty string
42        // non-zero number
[]        // empty array (truthy!)
{}        // empty object (truthy!)
"0"       // string zero (truthy!)
"false"   // the string "false" (truthy!)

Boolean Conversion

// Convert to boolean with Boolean() or !!
console.log(Boolean("hello")); // true
console.log(Boolean(""));      // false
console.log(Boolean(0));       // false
console.log(Boolean(42));      // true

// Double NOT shorthand
console.log(!!"hello");  // true
console.log(!!0);        // false