2015-09-19 68 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 
相关问题