Difference between == and === in JavaScript

JavascriptComparison OperatorsEquality OperatorIdentity Operator

Javascript Problem Overview


What is the difference between == and === in JavaScript? I have also seen != and !== operators. Are there more such operators?

Javascript Solutions


Solution 1 - Javascript

Take a look here: http://longgoldenears.blogspot.com/2007/09/triple-equals-in-javascript.html

The 3 equal signs mean "equality without type coercion". Using the triple equals, the values must be equal in type as well.

0 == false   // true
0 === false  // false, because they are of a different type
1 == "1"     // true, automatic type conversion for value only
1 === "1"    // false, because they are of a different type
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false

Solution 2 - Javascript

=== and !== are strict comparison operators:

> JavaScript has both strict and > type-converting equality comparison. > For strict equality the objects being > compared must have the same type and: > > * Two strings are strictly equal when they have the same sequence of > characters, same length, and same > characters in corresponding positions. > * Two numbers are strictly equal when they are numerically equal (have > the same number value). NaN is not > equal to anything, including NaN. > Positive and negative zeros are equal > to one another. > * Two Boolean operands are strictly equal if both are true or > both are false. > * Two objects are strictly equal if they refer to the same Object. > * Null and Undefined types are == (but not ===). [I.e. (Null==Undefined) is true but (Null===Undefined) is false]

Comparison Operators - MDC

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionShivaView Question on Stackoverflow
Solution 1 - JavascriptsdfxView Answer on Stackoverflow
Solution 2 - JavascriptJack SleightView Answer on Stackoverflow