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