You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript中1<2<3为true但3>2>1为false的原因咨询

JavaScript链式比较结果差异解析

先看第一个表达式 console.log(1<2<3):
JavaScript会从左到右依次计算比较表达式,第一步先算 1<2,结果是布尔值true。在JS里,布尔值参与数字比较时会被转换成数字:true对应1,false对应0。所以接下来就变成了 1<3,这个结果显然是true,所以第一个输出是true。

再看第二个表达式 console.log(3>2>1):
同样从左到右计算,第一步3>2得到true,转换成数字1,接下来就变成了 1>1,这个比较的结果是false,所以第二个输出是false。

本质上这种链式比较不是判断中间值是否在两边区间内,而是拆成连续的两次独立比较,每次比较的布尔结果会转成数字参与下一次运算。


内容的提问来源于stack exchange,提问作者Atomcode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 08:27:32