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

JavaScript Var变量求和异常:输入数值出现字符串拼接而非相加

嘿,我来帮你搞定这两个问题!

问题解答

一、关于两个var变量数值相加的问题

先澄清个小细节:在JavaScript里,var是用来声明变量的关键字,不是数值类型哦。如果你的两个变量存储的都是数值类型的值,直接用+运算符就能完成相加;但如果变量里存的是字符串形式的数字(比如"10"),就得先把它们转换成数值类型再相加,不然+会变成字符串拼接操作。

举个直观的例子:

var a = 5;
var b = 10;
console.log(a + b); // 输出15,正常数值相加

var c = "5";
var d = "10";
console.log(Number(c) + Number(d)); // 先转成数值再相加,输出15

二、解决prompt输入后求和变成字符串拼接的问题

你遇到的102030这个结果,核心原因是:prompt()函数返回的是字符串类型的值——哪怕你输入的是数字,它也会默认当成字符串处理。所以直接用+的话,就会执行字符串拼接,而不是数值相加。

修正方法很简单,把每个prompt()的结果转换成数值类型就行,常用的转换方式有三种:

  1. 使用Number()函数(通用转换,支持整数和小数)
  2. 使用parseInt()(适合处理整数输入)
  3. 使用parseFloat()(适合处理带小数的输入)

给你修正后的代码:

var num1, num2, num3;
// 把输入的字符串转成数值类型
num1 = Number(prompt("Enter num1:"));
num2 = Number(prompt("Enter num2:"));
num3 = Number(prompt("Enter num3:"));

var sum = num1 + num2 + num3;
document.write(sum);
alert(sum);

现在输入10、20、30,输出就会是预期的60啦!

另外提个小建议:现在JavaScript里更推荐用let或者const来声明变量,它们的作用域规则比var更清晰,能避免不少潜在问题~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 14:52:30