I think this just may be the most important piece of information for any software developer today. Whatever you do, don’t forget it.
- 0==false // true
- 0===false // false, because they are of a different type
- 1==”1″ // true, auto type coercion
- 1===”1″ // false, because they are of a different type
- 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 ===).
- 0 == ” is true
- false == ‘false’ is false
- false == ‘0’ is true
and the non-transitive demonstration is as follows:
- false == undefined is false
- false == null is false
- null == undefined is somehow true?
- Funny Dancer – Microsoft Kinect
- Stink Bugs will be knocking at your door soon – Kill them Safely