Those operators accept two values and return a boolean:

  • == checks for equality
  • != checks for inequality
  • === checks for strict equality
  • !== checks for strict inequality

Let’s talk what we mean for strict. Without the strict check, the second operand is converted to the type of the first before making the comparison. Strict prevents this.

Examples:

const a = true

a == true //true
a === true //true

1 == 1 //true
1 == '1' //true
1 === 1 //true
1 === '1' //false

You cannot check objects for equality: two objects are never equal to each other. The only case when a check might be true is if two variables reference the same object.

Some peculiarities to be aware: NaN is always different from NaN.

NaN == NaN //false

null and undefined values are equal if compared in non-strict mode:

null == undefined //true
null === undefined //false

Download my free JavaScript book!

But.. wait! Don't stop here.

I created a premium training program that will transform you, quickly, into an excellent JavaScript developer. Practical lessons to learn the 80% of the JavaScript that you need, in 20% of the time!

⬇️ ⬇️ ⬇️

Sign up to the JavaScript Course now!

⬆️ ⬆️ ⬆️