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

JavaScript实现负数转正数功能失效,点击按钮返回NaN如何解决

问题根源
  • 变量取值时机错误:你声明的numbr、negNumbr都是在页面首次加载时就执行取值,此时用户还未在输入框输入内容,取到的是空值,parseFloat处理空值会返回NaN,且后续用户输入内容后这两个全局变量不会自动更新取值。
  • textarea取值属性错误:textarea的用户输入内容存储在value属性中,而非innerText,innerText只能获取到标签初始渲染时的内部文本,拿不到用户后续输入的内容。
修复后的完整JS代码
function convertTheNumber() {
    // 点击按钮时再获取最新的输入值
    const inputVal = document.getElementById("txtnum").value;
    const num = parseFloat(inputVal);
    // 校验是否为合法数值
    if (isNaN(num)) {
        document.getElementById("convertedNumberDisplay").innerText = "请输入合法数字";
        return;
    }
    // 直接取绝对值完成正负转换,无需手动判断
    const positiveNum = Math.abs(num);
    document.getElementById("convertedNumberDisplay").innerText = positiveNum;
}
优化说明
  • 新增非法输入校验,用户输入非数字内容时会给出提示,避免返回NaN
  • 使用原生Math.abs()方法直接获取绝对值,替代手动正负判断逻辑,代码更简洁不易出错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 05:36:04