You need to enable JavaScript to run this app. 为什么JavaScript中字符串数字相加不符合直觉,最后运算返回20?
优惠活动
大模型
产品
解决方案
定价
更多

为什么JavaScript中字符串数字相加不符合直觉,最后运算返回20?

问题解答:JavaScript字符串数字加减运算结果异常原因
  • JavaScript中+和-运算符优先级相同,执行顺序为从左到右
  • +运算符同时支持数值相加和字符串拼接两种逻辑,只要操作数中存在字符串,就会优先执行拼接操作
  • -运算符仅支持数值运算,遇到非数值类型的操作数时,会自动触发隐式类型转换,将操作数转为Number类型后再计算

最后一行代码console.log("2" + "2" - "2");的执行过程可以拆分为两步:

  1. 先执行左侧的"2" + "2":两个操作数都是字符串,触发拼接逻辑,得到结果字符串 "22"
  2. 再执行"22" - "2":-运算符触发隐式类型转换,分别将两个字符串转为数值22和2,执行减法后得到结果20

前面的打印结果也可以对应验证规则:

  • console.log(2 + 2); 两个操作数都是数字,直接相加得到4
  • console.log("2" + "2"); 两个操作数都是字符串,拼接得到"22"
  • console.log(2 + 2 - 2); 所有操作数都是数字,按顺序计算得到2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 02:27:02