1. Undefined 、Null、0 比较
null == null;        // true
null == undefined;   // true
+0 == -0;            // true
null == 0;           // false
undefined == 0;      // false
2. NaN 比较
NaN == NaN;     // false  NaN与任何值比较都返回false(包括NaN)
3. 字符串 与 数字 比较
'5' == 5;     // true  字符串 '5' 转换 为 数字 5 进行比较
4. 布尔值 与 非布尔值 比较
true == 1;          // true   布尔值 true 转换 为 数字 1 进行比较
false == '123';     // false  布尔值 false 转换 为 数字 0 与 字符串 '123' 转换 为 数字 123 进行比较
 5.[] == ![] 为甚返回 true ?
经过!运算将等式右边转换成了 false。
[] == false
接着,根据==隐式转换规则,等式两边为对象和布尔,那么它们都应该转换为数字进行比较,左侧[]经过ToPrimitive转换为字符串""。
"" == false
然后,将等号两边的字符串""和布尔值false转换都成数字 0 。
 0 == 0 
所以,返回 true。




















