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

JavaScript条件判断不准确,大于10的数字比较结果异常如何解决?

问题原因
  • prompt()方法的返回值默认是字符串类型,直接对两个字符串做大小比较时,执行的是字典序比较规则,而非数值大小比较
  • 以"10"和"5"对比为例:字符串比较会逐位判断字符的Unicode编码大小,第一个字符'1'的编码小于'5',因此直接判定"10" < "5",最终输出错误的结果5
  • 10以内的数字可以正常比对的原因是:单个数字字符的Unicode编码顺序和数值大小顺序完全一致,不会出现比对偏差
修复方案

在拿到输入值后先转换为数值类型再做比较即可,同时可以优化参数校验逻辑,避免输入非数字的场景报错,修复后代码如下:

var firstScore = Number(prompt('First exam score?'));
var secondScore = Number(prompt('Second exam score?'));

if (isNaN(firstScore) || isNaN(secondScore)) {
  console.log('Wrong parameter');
} else if (firstScore > secondScore) {
  console.log(firstScore);
} else if (secondScore > firstScore) {
  console.log(secondScore);
} else {
  console.log('Two scores are equal');
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 05:15:03