Javascript chained inequality给出奇怪的结果

问题描述:

(0 <= 0 <= 0) === false 
(-1 < 0 <= 0 <= 0) === true 

这是怎么回事?在一些情况下,JavaScript实际上是否存在不平等链接?Javascript chained inequality给出奇怪的结果

+0

啊,你是对的菲利克斯。对于那个很抱歉;我在发帖之前搜索了一段时间,但没有看到那一个。作为另一方,我有没有办法直接将其作为副本关闭? – 2013-03-18 21:44:26

键入问题,然后被答复打击。 Javascript没有不等式链接。相反,0 <= 0 <= 0变成true <= 0,其被评估为1 <= 0。的确,0 < 0 <= 0评估为true

操作员没有链接,但是precedence。这里所有的操作员都有相同的优先级,所以操作从左到右进行。

当你比较涉及一个布尔值,the MDN explains how the comparison works

如果一个操作数是布尔型,布尔操作数转换为 1,如果它是真实的,+ 0,如果它是假的。

这意味着所述第一操作是根据优先级分解为

((0 <= 0) <= 0) 

true <= false 

false 

,第二个是

(true <= 0) <= 0 

false <= 0 

这是true