在 JavaScript 中,为什么 2 > 1 > 0 为真而 8 > 1 > 1 为假?

In JavaScript why 2 > 1 > 0 true while 8 > 1 > 1 false?

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

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

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

但是当我们用大于和小于运算符比较两个以上的值时。那我就看不懂这背后的逻辑了

    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 < 2 < 3 // evaluates to true

但是

3 > 2 > 1 // evaluates to false

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

1 < 2 

被执行它评估为真。在编程中,true 指的是 1,false 指的是 0。然后在执行上面的语句后我们有 true means 1. 现在当这个结果与下一个语句组合时

true < 3 

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

1 < 3 

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

进入下一个示例 3 > 2 > 1,其计算结果为 false,因为

3 > 2 // evaluates to true 

因为上面的语句是真的那么在编程意义上我们得到 1(true) 然后通过将这个结果与下一个语句组合

true > 1 // evaluates  to false

以上说法简明扼要

1 > 1 

因为1不大于1所以returns最终结果为假

3 > 2 = true
true > 1 = false

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

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