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

JavaScript计算逻辑异常咨询:预期结果与实际输出不符

JavaScript字符串拼接与数值运算优先级问题

问题描述

以下代码运行后输出£1696,但预期结果应为£112:

let output = 2
let cal = "£" + output * 8 + 96
console.log(cal)

问题原因

JavaScript的运算符优先级和自动类型转换导致了这个错误结果:

  • 乘法*优先级高于加法+,所以先执行output * 8得到数值16;
  • 随后"£" + 16触发字符串拼接,数值16被转为字符串,得到"£16";
  • 最后"£16" + 96再次触发字符串拼接,数值96转为字符串,最终得到"£1696"。

解决方案

通过括号强制改变运算顺序,让所有数值运算先完成,再进行字符串拼接:

let output = 2
let cal = "£" + (output * 8 + 96)
console.log(cal) // 输出£112

或者分步计算,逻辑更清晰:

let output = 2
let total = output * 8 + 96 // 先计算数值结果112
let cal = "£" + total // 再拼接字符串
console.log(cal) // 输出£112

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 13:55:16