JavaScript 比较运算符问题:连续使用 2 个运算符:为什么 JavaScript (12>11&&11>=10) 不等于 (12>11>=10)
JavaScript comparison operators issue : using 2 operators consecutively :why in JavaScript (12>11&&11>=10) does not equal to (12>11>=10)
像普通数学一样,我尝试在控制台中记录这段代码,我希望得到值 true
console.log(12>11>=10)
但我得到的是 false
然而,当我尝试记录 console.log(12>11&&11>=10)
时,我得到了 true
所以最后一次,我尝试了 console.log( (12>11&&11>=10) == (12>11>=10) )
然后我得到了 flase
所以我的问题是:
为什么 javascript (12>11&&11>=10) 不等于 (12>11>=10) ?!
希望大家能帮忙
因为编程语言语法和人类直觉是两个非常不同的东西。语言绝不会“知道你的意思”,你必须完全明确和明确。
你这里有两个操作。一种使用 >
运算符,另一种使用 >=
运算符。操作是原子的事情。一个会发生,然后另一个。
所以这个:
12 > 11
结果:
true
然后是这个:
true >= 10
结果:
false
少用直觉,多用逻辑。分开你的两个操作:
12 > 11
11 >= 10
并将它们合乎逻辑地组合起来:
(12 > 11) && (11 >= 10)
计算结果为:
true && true
计算结果为:
true
由于运算符 > 和 >= 的绑定相同,因此处理为:
(12>10)>=10
这意味着:
true>=10
这是false
。
像普通数学一样,我尝试在控制台中记录这段代码,我希望得到值 true
console.log(12>11>=10)
但我得到的是 false
然而,当我尝试记录 console.log(12>11&&11>=10)
时,我得到了 true
所以最后一次,我尝试了 console.log( (12>11&&11>=10) == (12>11>=10) )
然后我得到了 flase
所以我的问题是:
为什么 javascript (12>11&&11>=10) 不等于 (12>11>=10) ?!
希望大家能帮忙
因为编程语言语法和人类直觉是两个非常不同的东西。语言绝不会“知道你的意思”,你必须完全明确和明确。
你这里有两个操作。一种使用 >
运算符,另一种使用 >=
运算符。操作是原子的事情。一个会发生,然后另一个。
所以这个:
12 > 11
结果:
true
然后是这个:
true >= 10
结果:
false
少用直觉,多用逻辑。分开你的两个操作:
12 > 11
11 >= 10
并将它们合乎逻辑地组合起来:
(12 > 11) && (11 >= 10)
计算结果为:
true && true
计算结果为:
true
由于运算符 > 和 >= 的绑定相同,因此处理为:
(12>10)>=10
这意味着:
true>=10
这是false
。