JavaScript Fundamentals: Understanding Equality (== vs ===)

Welcome to the fourth part of our Node.js Jumpstart series! In Variables and Functions we covered key JS fundamentals. Now, let's tackle a concept that frequently causes bugs: comparing with == vs. ===.

Understanding == vs === (Loose vs. Strict Equality)

This difference is a common source of subtle bugs. JavaScript offers two equality checks:

  1. Loose Equality (==): Compares values after type coercion. Example:

    console.log(5 == '5');   // true
    console.log(0 == false); // true
    console.log(null == undefined); // true
    console.log('' == false); // true
    
  2. Strict Equality (===): Compares both type and value without coercion. Example:

    console.log(5 === '5');   // false
    console.log(0 === false); // false
    console.log(null === undefined); // false
    console.log('' === false); // false
    

Things in life may not be equal.

But in JavaScript? Everything might be... if you use == instead of ===.

Recommendation: Always use === (and !==) to avoid unexpected coercion. Save == (!=) for rare, explicit cases like when you're comparing null to undefined.