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

为何我的JavaScript乘法功能运行时返回NaN?

解决乘法系统返回NaN的问题

你的代码出现NaN的核心问题有这几个:

  • 页面刚加载就去拿输入框的值,这时候输入框是空的,parseInt("")会返回NaN,后续计算自然全是NaN
  • 点击按钮时没有重新读取用户刚输入的数值,而是用了页面加载时的旧值
  • 按钮上的onclick=(operacao)完全没用,属于多余代码

修正后的代码如下:

JavaScript 代码

let button = document.querySelector("#button");

function operacao(a, b) {
  return a * b;
}

button.addEventListener("click", function() {
  // 点击时才读取最新的输入值
  let num1 = parseInt(document.getElementById('num1').value, 10);
  let num2 = parseInt(document.getElementById('num2').value, 10);
  // 增加输入校验,避免空输入的情况
  if (isNaN(num1) || isNaN(num2)) {
    document.getElementById('resto').innerHTML = '请输入有效的数字';
    return;
  }
  let resto = operacao(num1, num2);
  document.getElementById('resto').innerHTML = 'O resultado é: ' + resto;
});

HTML 代码

<label>
  Informe os numeros:  
  <br>
  <input type="number" id="num1">
  <p>x</p>
  <input type="number" id="num2">
</label>
<br>
<br>
<button id="button">Multiplicar</button>
<p id="resto"></p>

关键改动说明

  1. 延迟读取输入值:把获取输入框值的代码移到点击事件里,确保每次点击按钮都能拿到用户最新输入的内容
  2. 添加基数参数:给parseInt加上第二个参数10,明确按十进制解析数字,避免出现八进制等意外情况
  3. 增加输入校验:判断输入是否为有效数字,给用户更友好的提示
  4. 移除冗余代码:删掉按钮上无效的onclick属性,避免冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:14:59