###JavaScript has both strict and type-converting 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.
- Boolean operands are strictly equal if both are true or both are false.
- Objects are strictly equal only if they refer to the same Object instance.
- Null and Undefined are ==, but not === (they're not of the same type, because they have no real type - they're absence).