You need to enable JavaScript to run this app. 如何使用window对象的prompt方法完成两个输入数字求和
优惠活动
大模型
产品
解决方案
定价
更多

如何使用window对象的prompt方法完成两个输入数字求和

核心问题定位
  • window.prompt()确实是实现输入交互需要用到的window对象内置方法,这部分用法没有问题
  • 之所以出现拼接而不是求和的现象,本质是类型不匹配:prompt的返回值永远是字符串格式,哪怕用户输入的是纯数字,拿到的也是文本内容
  • 当两个字符串用+运算符连接时,JavaScript会默认执行字符串拼接逻辑,不会自动做数值加法——比如输入1和2,拿到的是字符串"1"和"2",拼接结果就是"12",不是数字3
  • 原代码的alert逻辑里,压根没有做求和计算,只拼接了提示的前半段文本,没有把计算结果接在末尾
修正实现步骤
  • 拿到prompt的输入值后,先用Number()方法把字符串显式转换成数值类型,从根源上避免触发字符串拼接逻辑
  • 单独对两个转换后的数值做加法,把总和存在变量里
  • 把存好的总和拼接到alert提示文本的最后,完成完整的结果展示
  • 顺手修正原代码的标签错误:原代码里第二处闭合head标签错写成了<head>,虽不影响JS执行,但不符合HTML书写规范
修正后可直接运行的代码
<html>
<head>
  <script language="JavaScript">
    var requestMsg = "Enter a number";
    // 把prompt返回的字符串转为数值
    var num1 = Number(prompt(requestMsg));
    requestMsg = "Enter another number here";
    var num2 = Number(prompt(requestMsg));

    // 计算两个数字的实际总和
    var total = num1 + num2;
    // 拼接完整提示文本后弹出
    alert(" You entered " + num1 + " + " + num2 + " which equals " + total);
  </script>
</head>

<body>

</body>
</html>
实用补充
  • 数值转换不局限于Number()方法,也可以在输入值前加+(比如+prompt("请输入数字"))做隐式转换,效果完全一致
  • 如果要适配更严谨的使用场景,可以在转换后加校验:如果转换结果是NaN,就提示用户输入合法数字,避免弹出无意义的计算结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.05 22:27:00