【问题标题】:Why console.log(10 < 14 < 50) is true but console.log(10 > 7 > 2) is false? [duplicate]为什么console.log(10 < 14 < 50) 为真而console.log(10 > 7 > 2) 为假? [复制]
【发布时间】:2021-11-30 15:08:30
【问题描述】:

为什么console.log(10 7 > 2) 为假? 为什么第一个给真,第二个给假

【问题讨论】:

标签: javascript


【解决方案1】:

它是这样工作的:

首先计算左侧(10 &lt; 14) => 返回True,也就是1

然后它计算右侧:(True &lt; 50),即(1 &lt; 50),这也是True

另一方面,(10 &gt; 7) => True = 1,但(True &gt; 2)(1 &gt; 2)False

如果你愿意尝试:console.log(10 &lt; 14 == 1) 你会看到它也是True

【讨论】:

    【解决方案2】:

    这不是您在 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-24
      • 1970-01-01
      • 2021-07-09
      • 2021-10-14
      • 1970-01-01
      • 1970-01-01
      • 2011-10-26
      相关资源
      最近更新 更多