Difference between == and === in JavaScript
comparison-operators, equality-operator, identity-operator, javascript
Solution
`===` 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
Problem
What is the difference between `==` and `===` in JavaScript? I have also seen `!=` and `!==` operators. Are there more such operators?