值的比较
一个有趣的现象
有时候,以下两种情况会同时发生:
- 若直接比较两个值,其结果是相等的。
- 若把两个值转为布尔值,它们可能得出完全相反的结果,即
true和false。
let a = 0; alert( Boolean(a) ); // false let b = "0"; alert( Boolean(b) ); // true alert(a == b); // true!
对于 JavaScript 而言这种现象蛮正常的,因为它会把待比较的值转为数字后再做比较(因此 "0" 变成了 0 )。若只是将一个变量转为 Boolean,则会使用其他的类型转换规则。
奇怪的结果:null vs 0
通过比较 null 和 0 可得:

浙公网安备 33010602011771号