代码之家  ›  专栏  ›  技术社区  ›  soccerway

为什么15>10>5是错误的?

  •  -1
  • soccerway  · 技术社区  · 6 年前

    下面的javascript函数输出为 false ,为什么会导致错误?

    console.log(15 > 10 > 5);
    
    2 回复  |  直到 6 年前
        1
  •  3
  •   Pierre Capo    6 年前

    因为比较运算符接受两个操作数。因此,首先,您的代码计算 15 > 10 哪些回报 true 然后它就这样做了 true > 5 它显然会回来 false

        2
  •  2
  •   axiac    6 年前

    这个 comparison operators 从左到右取两个操作数和关联。这意味着 15 > 10 > 5 被评估为 (15 > 10) > 5 .

    15 > 10 显然评估为 true .

    true > 5 评估的方式不那么明显吗?

    幸运的是, JavaScript documentation 解释当值具有不同类型时如何转换:

    如果其中一个操作数是布尔操作数,则布尔操作数将转换为 1 如果是真的 +0 如果是 false .

    这意味着 真与gt;5 评估方法与 1 > 5 直到现在,结果才很清楚:是的 .