DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 968,547 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
flavio ⚑️πŸ”₯
flavio ⚑️πŸ”₯

Posted on • Originally published at flaviocopes.com on

JavaScript Equality Operators

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

Top comments (4)

Collapse
 
webdeasy profile image
Lorenz

How did you "Originally published at" in the post title? :o

Collapse
 
flaviocopes profile image
flavio ⚑️πŸ”₯ Author

I think dev.to does it automatically when you set the canonical meta tag!

Collapse
 
dance2die profile image
Sung M. Kim • Edited on

As @flavio said it's the "canonical url" that does the job.

For more info, check out "Front Matter -> canonical_url" in the Editor Guide.

Collapse
 
novajay2415 profile image
NovaJay2415

That's really interesting! Thank you for pointing that out. It will definitely help me out... Just starting to learn JavaScript.

Visualizing Promises and Async/Await 🀯

async await

☝️ Check out this all-time classic DEV post