Javascript 多重比较表达式语法

标签 javascript syntax boolean

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

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

我猜虚拟机首先计算表达式的一部分,然后将其与其余部分进行比较,但是有人真的知道(最好有文档链接)这里到底发生了什么吗?

编辑:我找到了 similar question其中有如何编写此内容的解决方案,但我实际上对这里幕后发生的事情感兴趣。

最佳答案

使用这个:

if (1 < x && x < 3)

你正在做的是

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

This page from the MDN on operator precedence解释说 <从左到右解释。

关于Javascript 多重比较表达式语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24672239/

相关文章:

javascript - 如何在 Javascript onload 中捕获表单提交?

hadoop - 配置单元语法过程控制

Python Bool 和 int 比较和索引列表上的 boolean 值

javascript - 将 javascript 数组传递给 onclick 属性的函数

Javascript:setAttribute ("onmouseover", "...function...")不执行任何操作

javascript - React 类中的 es6 函数声明

parsing - 我无法创建支持中缀、后缀和前缀函数等的语言有什么原因吗?

python - 在 Python 中打开文件时出现括号错误

boolean - 返回一个 boolean 值 - jdbcTemplate

java - doubleX(String someString) 方法应根据输入字符串是否包含连续的 'x' 个字符返回 boolean 值