【发布时间】:2021-11-30 15:08:30
【问题描述】:
为什么console.log(10 7 > 2) 为假? 为什么第一个给真,第二个给假
【问题讨论】:
-
因为
10 < 14 < 50=1 < 50而10 > 7 > 2=1 > 2 -
Operator Precedence 是一个值得熟悉的好资源
标签: javascript
为什么console.log(10 7 > 2) 为假? 为什么第一个给真,第二个给假
【问题讨论】:
10 < 14 < 50 = 1 < 50 而10 > 7 > 2 = 1 > 2
标签: javascript
它是这样工作的:
首先计算左侧(10 < 14) => 返回True,也就是1。
然后它计算右侧:(True < 50),即(1 < 50),这也是True。
另一方面,(10 > 7) => True = 1,但(True > 2) 即(1 > 2) 是False。
如果你愿意尝试:console.log(10 < 14 == 1)
你会看到它也是True。
【讨论】:
这不是您在 JS 中检查间隔的方式。
您的代码将根据operator precedence 从左到右进行解释。 comparison operators 是 二元 运算符,它们采用左侧表达式和右侧表达式
10 < 15 < 50
// To
true < 50
// To
1 < 50
// And
10 > 7 > 2
// To
true > 2
// To
1 > 2
你应该这样做:
console.log(14 < 10 && 14 <50)
//
console.log(7 < 10 && 7 > 2)
【讨论】: