在 JavaScript 中,为什么 2 > 1 > 0 true 而 8 > 1 > 1 false?

时间:2021-04-11 10:59:56

标签: javascript logical-operators

正如我们所知道的大于和小于运算符的工作原理。

    console.log(2 < 12) // true
    
    console.log(2 < "12") // true

    console.log("2" > "12") // true

但是当我们用大于和小于运算符比较 2 个以上的值时。那我就无法理解幕后的逻辑了。

    1. console.log(1 > 2 < 3) // true      and     console.log(1 > 2 > 3) // false

    2. console.log(9 > 2 > 9 < 8 < 9) // true
    
    3. console.log(9 > 8 > 7 > 9 > 5) // false

谁能详细解释一下 1 、 2 和 3 背后的原因?

1 个答案:

答案 0 :(得分:0)

我想用下面的例子来解决这个问题。

1 < 2 < 3 // evaluates to true

但是

3 > 2 > 1 // evaluates to false

我们知道js是从左到右执行的。因此,在第一个示例 when 语句中

1 < 2 

执行它评估为真。在编程中,真指的是 1,假指的是零。那么在执行完上面的语句后,我们的意思是1。现在当这个结果与下一个语句结合时

true < 3 

简而言之,这句话的意思是

1 < 3 

因为 true 在编程中指的是 1。由于 1 < 3 为真,这就是我们将最终结果设为真的原因。

进入下一个例子 3 > 2 > 1 ,因为

3 > 2 // evaluates to true 

既然上面的语句是真的,那么在编程意义上我们得到了 1(true),然后将这个结果与下一个语句结合起来

true > 1 // evaluates  to false

以上声明很简短

1 > 1 

由于 1 不大于 1,因此将最终结果返回为 false。

3 > 2 = true
true > 1 = false

所以最后我们得出结论,通过编程的意义,两个语句的计算结果不同,但在数学意义上两者是相同的。是面试题。希望你明白这一点。

如果需要任何其他信息,请告诉我。在其他情况下,它可能会被接受。