Javascript多重比较表达式语法

Javascript multiple comparison expressions syntax

本文关键字:表达式 语法 比较 Javascript      更新时间:2023-09-26

通过直觉我知道下面的语法是错误的,或者至少没有按预期工作(尝试过),但也没有抛出错误:

var x = 2;
if (1 < x < 3) ...

我猜VM首先评估表达式的一部分,然后将其与其余部分进行比较,但是是否有人实际上知道(最好有文档链接)究竟在这里发生了什么?

编辑:我发现了一个类似的问题,有如何写这个的解决方案,但我实际上对幕后发生的事情很感兴趣。

使用

if (1 < x && x < 3)

你在做什么

if (
    (1 < x) // boolean, cast to 0 or 1
    < 3
)

这一页来自MDN的操作符优先级解释了<是从左向右解释的