据我所知,在JavaScript!应该规范化一个布尔值,将其从某个其他类型转换为true或false.这意味着"0"转换为布尔值true.另一方面,如果我将它与false进行比较,事实证明它实际上是假的(因为比较的结果是真的).我在这里错过了什么规则.我在IE和Opera中测试了它.
SLa*_*aks 10
该==
运营商检查松动的平等,它有无关感实性.
具体来说,它会将操作数转换为数字,然后比较数字.
包含数字的字符串会转换为它们包含的数字; 布尔值转换为0
和1
.如果已定义,则
通过调用来转换对象valueOf
.
因此,以下所有都是如此:
"1" == 1
"0" == false
"1" == true
"2" != true
"2" != false
({ valueOf:function() { return 2; } }) == 2
({ valueOf:function() { return 1; } }) == true