js比较运算符遇到的疑惑,请大家帮看看~

刚刚遇到的问题
在chrome中测出来

let num = 15
0<num<3 //true 不知道为什么会出现这种情况
3>num>15 //false 我想要的值 

我的理解 0<num<3 也应该是false;
这是什么样的逻辑呢,没看明白.
请大家帮看看原因!感谢~

已解决 悬赏分:30 - 解决时间 2021-12-03 05:03
反对 0举报 0 收藏 0

回答2

最佳
  • @
    0<num<3

    分 2 步
    第一步: 0<num 首先他返回的是 true
    第二步: true<3 大家都知道 true==1,所以这里是 1<3
    所以返回 true

    3>num>15

    同理

    支持 0 反对 0 举报
    2021-12-02 13:30
  • @

    表达式是从左至右、按照运算符优先级计算的,不是数据中的公式。

    0 < num < 3,先算 0 < num,该表达式返回一个 bool 值,要么是 true(即 1)、要么是 false(即 0);再算 true/false < 3(即 0/1 < 3),所以表达式恒成立。

    下面的自己推导一下吧。


    如果你想表达数学上的“num 既大于 0 又小于 3”,应该用和运算符:num > 0 && num < 3。

    支持 0 反对 0 举报
    2021-12-02 14:03