2015-09-19 14 views
0

爲什麼(9 > 8) === true導致「true」,但(10>9>8) === true導致「false」?JavaScript中的身份運算符如何工作?

+1

您的語句無效(10> 9> 8)被編譯爲((10> 9)> 8),它是(true> 8)。建議在js中使用1。 (1> 8)爲假 –

+1

first:(true)=== true second:(true> 8)=== true - > true - 轉換爲1,1> 8 = false,false === true - > false 。我認爲.... :) – sinisake

回答

2

您應該只有一個比較運算符而不使用AND(& &)或OR(||)運算符。

如果你想(10> 9> 8)解析爲真實的,你會格式化這樣的:

(10> 9 & & 9> 8)

此說「檢查10> 9,如果這是真的,檢查9> 8。如果他們都是真實的,返回true」

3

因爲:

10 > 9 > 8 === (true) > 8 

哪個是假的。在truthy值中,真值被表示爲「1」。由於true > 0false < 1

7

如果我們看到兩者,JavaScript會從左到右執行。衆所周知:

(9 > 8) === true 

上述說法的確如此。但是我們需要知道的是,JavaScript如何執行此操作。如果我們看到它是如何執行的,執行步驟如下:

(10 > 9 > 8) === true 
((10 > 9) > 8) === true 
(true > 8) === true 
(1 > 8) === true 
false === true 
false