在Java或其他类似语言中,我不能这样做:
a < b > c
其中a,b,c是布尔类型。
在Javascript中,我可以这样做,也可以使用其他数据类型值:
var t = 3;
var z = true;
t > z // will be true
现在为什么结果是真的???
答案 0 :(得分:4)
因为Javascript愿意直接进行类型转换。布尔true
被强制转换为数字1
。
请注意,1 == true
为true
,但1 === true
为false
。
答案 1 :(得分:2)
True将转换为1.而3大于1 ......
答案 2 :(得分:0)
JavaScript首先将布尔值true
转换为数字以进行比较。在这种情况下,true
会转换为1
。
但是很多对象不会被转换为数字。例如,{}
为NaN
。