JavaScript - (10<3<10) 返回 true。

3

为什么在Javascript中 (10<3<10) 返回true?3<10 但是 10<3 是false。所以它应该返回 false


2
实际上,它应该返回false的原因是因为10不可能小于10,因为10 不小于 10。 - BoltClock
大多数编程语言不支持这种双重比较。 - Sam G-H
你实际上不能使用两个运算符,因此运算符优先级生效,它被解读为 ( (10<3) < 10 ),其结果为 ( false < 10 ),这是 true。 - adeneo
@BoltClock,4<3<10 也是真的。 - vp_arth
这个问题在SO上至少已经被问过并回答了一次,但我手头没有链接。编辑:哦,嘿,它就在“相关”列表中。这意味着在你发布问题之前,它已经出现在“您的问题可能已经有答案”的列表中了。 - T.J. Crowder
显示剩余2条评论
2个回答

11

10<3<10的含义是(10<3)<1010<3的结果为falsefalse<10 的结果为 true。


在比较中,false 是否会被转换为 0 - Tim S.
哇!我以为它更神秘))) - AlieN
否则,10 转换为 true... - vp_arth
@TimS.:是的。关系运算符可以作用于字符串或数字,并且更喜欢数字。因此,如果两侧都支持转换为数字(布尔值也支持),它将选择使用数字。 - T.J. Crowder
是的!这对我来说非常奇怪,PHP也会出现这种情况。我喜欢Ruby(这种无聊的事情不会发生)! - Vitor Tyburski
没有强类型 - vp_arth

2

因为

Number(false)

0 是假的,10<3 也是假的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接