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

JS修改变量val1后sum值未更新,为何控制台仍输出旧结果?

为什么修改val1后sum的值没有更新?

这是因为变量赋值是一次性计算结果的:
当你执行let sum = val1 + val2时,JavaScript会立刻取当时val1(值为2)和val2(值为3)的数值相加,把结果5直接存在sum变量里。从这一刻起,sum就只是一个存储了5的独立变量,和val1、val2再也没有关联——哪怕你之后修改val1的值,sum的数值不会自动重新计算。

如果想要sum能跟随val1或val2的变化自动更新,可以用以下两种方式:

方式1:用函数动态计算

每次需要求和时调用函数,它会实时取当前的val1和val2值计算:

let val1 = 2
let val2 = 3
const getSum = () => val1 + val2

console.log(getSum()) // 输出5
val1 = 3
console.log(getSum()) // 输出6

方式2:用对象的getter属性

通过getter定义一个动态计算的属性,每次访问它时都会重新求值:

let val1 = 2
let val2 = 3
const calc = {
  get sum() {
    return val1 + val2
  }
}

console.log(calc.sum) // 输出5
val1 = 3
console.log(calc.sum) // 输出6

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 22:02:01