Files
30-seconds-of-code/blog_posts/javascript-object-is-triple-equals.md
2021-02-25 20:01:30 +02:00

1.3 KiB

title: What's the difference between Object.is() and the triple equals operator in JavaScript? type: question tags: javascript,object,type authors: chalarangelo cover: blog_images/rocky-mountains.jpg excerpt: Object.is() and the triple equals operator (===) can both be used for equality checking in JavaScript, but when should you use each one?

If you want to check equality in JavaScript, there are two comparison operators, which are explained in depth in a previous article.

Very briefly, the double equals operator (==) only compares value whereas the triple equals operator (===) compares both value and type. But there is also a third option, Object.is(), which behaves the same as the triple equals operator with the exception of NaN and +0 and -0.

Here are some examples for additional clarity:

{} === {}; // false
Object.is({}, {}); // false

1 === 1; // false
Object.is(1, 1); // false

+0 === -0; // true
Object.is(+0, -0); // false

NaN === NaN; // false
Object.is(NaN, NaN); // true

Image credit: Jonathan Sanchez on Unsplash