在javascript中,双等号 == 比较不同类型的值时,会先转换,再比较其内容, ' ' 转换为false,false会转换成0,0等于0, 故为true。
(在JavaScript中,非 0 都为 true,非空都为 true,"是空,所以为 false)
' ' == 0 //true ' ' 转为false
true == 1 //true true 转为 1
在javascript中,三等号 === 比较不同值类型会直接返回false,否则才会比较值。
非严格模式下
0 空字符串 false 归为一类,称为"假值"
0 == ' ' == false //都为true
null和undefined归为一类,称为"空值"
null ==undefined //true
null ==0 //false
扩展
null == 0 为false 而 null >= 0 为true
null > 0 // null 尝试转型为number , 转为0。故为 false
null >= 0 // null 尝试转为number 转为0 , 故为 true