正如我们所知道的大于和小于运算符的工作原理。
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 背后的原因?
答案 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
所以最后我们得出结论,通过编程的意义,两个语句的计算结果不同,但在数学意义上两者是相同的。是面试题。希望你明白这一点。
如果需要任何其他信息,请告诉我。在其他情况下,它可能会被接受。