【问题标题】:Javascript - (10<3<10) return true [duplicate]Javascript - (10<3<10) 返回 true [重复]
【发布时间】:2014-05-26 00:08:39
【问题描述】:

为什么(10&lt;3&lt;10) 在 Javascript 中返回 true? 3&lt;1010&lt;3 是假的。所以它应该返回false

【问题讨论】:

  • 其实它应该返回false的原因是因为10不可能&lt;3小于10,因为10不小于 10。
  • 大多数语言不支持这样的双重比较。
  • 你不能真正使用两个操作符,所以操作符在场,它被读取为( (10&lt;3) &lt; 10 ),它等于( false &lt; 10 ),这是真的
  • @BoltClock, 4&lt;3&lt;10 也是如此)
  • 这已经在 SO 上至少一次被询问和回答过,但我没有方便的链接。 编辑:哦,嘿,它就在“相关”列表中。这意味着它在您发布问题之前显示在“您的问题可能已经有答案”列表中。

标签: javascript


【解决方案1】:

因为

Number(false)

010&lt;3false

【讨论】:

    【解决方案2】:

    10&lt;3&lt;10 等价于(10&lt;3)&lt;1010&lt;3falsefalse&lt;10 是真的。

    【讨论】:

    • 是否将false 转换为0 进行比较?
    • 哇!我认为它更神秘)))
    • 否则,10 转换为 true...
    • @TimS.:是的。关系运算符可以作用于字符串或数字,并且更喜欢数字。因此,如果双方都支持转换为数字(并且 bools 支持),它会随之而来。
    • 是的!这对我来说很奇怪,PHP 也是如此。我喜欢Ruby(这种废话不会发生)!
    猜你喜欢
    • 1970-01-01
    • 2020-10-10
    • 2019-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-05
    • 2017-02-10
    • 1970-01-01
    • 2015-08-14
    相关资源
    最近更新 更多