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

为何JavaScript中2+3+"4"与"4"+2+3的运算结果不一致?

执行结果差异原因解释

首先给出问题对应的可运行代码:

const a = 2 + 3 + "4";
const b = "4" + 2 + 3;
console.log(a); // 输出 54
console.log(b); // 输出 423

两个变量结果不同的核心是两个JavaScript基础规则共同作用的结果:

  • 加法运算符+是左结合的,运算顺序永远从左到右执行
  • 加法运算触发隐式类型转换的规则:只要任意一个操作数为字符串类型,就会将另一个操作数也转为字符串,执行字符串拼接逻辑;只有两个操作数都是数字类型时,才会执行算术加法逻辑

变量a的运算过程

  1. 先执行最左侧的2 + 3:两个操作数都是数字,执行算术加法,得到数字结果5
  2. 再执行5 + "4":第一个操作数是数字,第二个是字符串,触发隐式转换将数字5转为字符串"5",执行字符串拼接,得到最终结果"54"

变量b的运算过程

  1. 先执行最左侧的"4" + 2:第一个操作数是字符串,触发隐式转换将数字2转为字符串"2",执行拼接得到字符串"42"
  2. 再执行"42" + 3:第一个操作数是字符串,触发隐式转换将数字3转为字符串"3",执行拼接得到最终结果"423"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:54:03