2013-03-17 124 views
3
(0 <= 0 <= 0) === false 
(-1 < 0 <= 0 <= 0) === true 

這是怎麼回事?在一些情況下,JavaScript實際上是否存在不平等鏈接?Javascript chained inequality給出奇怪的結果

+0

啊,你是對的菲利克斯。對於那個很抱歉;我在發帖之前搜索了一段時間,但沒有看到那一個。作爲另一方,我有沒有辦法直接將其作爲副本關閉? – 2013-03-18 21:44:26

回答

6

鍵入問題,然後被答覆打擊。 Javascript沒有不等式鏈接。相反,0 <= 0 <= 0變成true <= 0,其被評估爲1 <= 0。的確,0 < 0 <= 0評估爲true

3

操作員沒有鏈接,但是precedence。這裏所有的操作員都有相同的優先級,所以操作從左到右進行。

當你比較涉及一個布爾值,the MDN explains how the comparison works

如果一個操作數是布爾型,布爾操作數轉換爲 1,如果它是真實的,+ 0,如果它是假的。

這意味着所述第一操作是根據優先級分解爲

((0 <= 0) <= 0) 

true <= false 

false 

,第二個是

(true <= 0) <= 0 

false <= 0 

這是true