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

JavaScript中+号拼接变量而非求和 输入三个1得到111而非3问题

问题原因

prompt() 方法的返回值默认是字符串类型,即便用户输入的是纯数字,拿到的结果也是字符串格式的数值。JavaScript 中的+运算符只要存在字符串类型的操作数,就会优先执行字符串拼接逻辑,所以三个字符串类型的"1"相加最终得到的是"111",而非数值求和结果3。

解决方案

可以在拿到prompt返回值之后先转成数值类型再做加法运算,常用的转换方法有以下几种:

  • 方法1:使用Number()显式转换,兼容整数、小数场景
x = Number(prompt("Enter first Number")); 
y = Number(prompt("Enter second Number"));
z = Number(prompt("Enter third Number")); 
p = x + y + z;
  • 方法2:使用一元加号运算符隐式转换,写法更简洁,效果和Number()一致
x = +prompt("Enter first Number"); 
y = +prompt("Enter second Number");
z = +prompt("Enter third Number"); 
p = x + y + z;
  • 方法3:仅需要整数的场景可以用parseInt(),需要保留小数的场景用parseFloat()
// 十进制整数转换示例,第二个参数10指定按十进制解析,避免部分特殊场景解析异常
x = parseInt(prompt("Enter first Number"), 10); 
y = parseInt(prompt("Enter second Number"), 10);
z = parseInt(prompt("Enter third Number"), 10);
p = x + y + z;

注意:如果用户输入非数字内容,上述转换方法会得到NaN,可以额外通过isNaN()判断做异常输入的容错处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 07:06:01