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

JavaScript中IF语句比较两个变量得到错误结果怎么解决?

问题核心原因

你从<textarea>元素的value属性获取到的内容是字符串类型,直接使用>=、<这类比较运算符时,会按照字符串的Unicode编码逐位比对,而不是按照数字大小比对:

  • 比较"10"和"2"时,首先比对第一位字符:'1'的Unicode编码小于'2'的编码,所以会直接判定"10" < "2",就会得到你遇到的错误输出。
修复方案

在比较前先把取到的字符串转换为数字类型即可,整数场景可以用Number()或者parseInt()转换,涉及小数可以用parseFloat()转换,修改后的start函数参考如下:

function start() {
    // 转换为数字类型后再赋值
    var numberOne = Number(document.getElementById('one').value);
    var numberTwo = Number(document.getElementById('two').value);
    
    if(numberOne>=numberTwo) {
        document.getElementById('demo').innerHTML = numberOne + ' is bigger than ' + numberTwo;
    }
    else {
        document.getElementById('demo').innerHTML = numberOne + ' is smaller than ' + numberTwo;
    }
}

修改后再测试,输入10和2时就会正确输出10 is bigger than 2。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:36:03