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

为何x=9时5 < x < 9的条件判断结果为true?

问题原因解析

先看你给出的代码:

let x = 9;

if (5 < x < 9) {
    console.log('less than 9');
}

当x=9时代码输出了'less than 9',核心原因是JavaScript不支持数学里那种连续比较的写法,它会把表达式从左到右拆分计算:

  1. 先算5 < x,此时x=9,5<9的结果是布尔值true
  2. 接着算true < 9,JavaScript会把布尔值true自动转换成数字1,于是变成1 < 9,结果为true
  3. 因为整个if条件判定为true,所以执行了console.log语句,出现不符合预期的输出

正确的写法应该用逻辑与运算符&&连接两个独立的比较表达式:

let x = 9;

if (5 < x && x < 9) {
    console.log('less than 9');
}

这样当x=9时,x < 9的结果是false,整个条件为false,就不会执行console.log了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 14:15:37