Dung (Donny) Nguyen

Senior Software Engineer

Compare Operators

JavaScript provides several operators to compare values for equality and inequality. The most commonly used ones are:


1. == (Equality Operator)


2. === (Strict Equality Operator)


3. != (Inequality Operator)


4. !== (Strict Inequality Operator)


Key Differences Between == and ===

Operator Type Conversion? Example Result
== Yes 5 == '5' true
=== No 5 === '5' false

Special Cases to Remember

  1. null and undefined:
    • null == undefined is true because they are loosely equal.
    • null === undefined is false because they are different types.
  2. NaN (Not-a-Number):
    • NaN == NaN and NaN === NaN are both false.
    • Use Number.isNaN() to check for NaN.
    console.log(NaN == NaN);  // false
    console.log(Number.isNaN(NaN)); // true
    
  3. 0 and false:
    • 0 == false is true (loose equality).
    • 0 === false is false (strict equality).
  4. Empty String (""):
    • "" == false is true (loose equality).
    • "" === false is false (strict equality).

When to Use