javascript 逻辑运算的坑


周末两天参加PHP Conf China活动,无意间看到某公司出了一道JS题,现场没有答出,回来后Google了才知道原因。

1
2
3
4
5
function (a)
alert(2<a<3)
}
(1)

此段代码看着应该返回FALSE,因为逻辑上1<2,但是最终结果却是TRUE,其实JS解析的时候是看成先解析2<1,此时结果是FALSE,但是FALSE对于JS来说是会转成int型的0(TRUE就是1),然后0<3的结果就是TRUE了。