使用布尔值进行表达式求值

时间:2010-03-11 12:51:34

标签: javascript

在Java或其他类似语言中,我不能这样做:

a < b > c

其中a,b,c是布尔类型。

在Javascript中,我可以这样做,也可以使用其他数据类型值:

var t = 3;
var z = true;

t > z // will be true

现在为什么结果是真的???

3 个答案:

答案 0 :(得分:4)

因为Javascript愿意直接进行类型转换。布尔true被强制转换为数字1

请注意,1 == truetrue,但1 === truefalse

答案 1 :(得分:2)

True将转换为1.而3大于1 ......

答案 2 :(得分:0)

JavaScript首先将布尔值true转换为数字以进行比较。在这种情况下,true会转换为1

但是很多对象不会被转换为数字。例如,{}NaN