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

开发节食计算器时JS变量st3返回0的问题求助

问题原因与解决方案

核心问题是变量遮蔽:你在第二步的所有函数中重新用let声明了st2,这会创建一个仅在当前函数内有效的局部变量,而非修改全局的st2。全局st2始终保持初始值0,导致第三步计算st3时调用的是这个未更新的全局变量,最终得到0。

修复方法:

  1. 移除第二步所有函数中的let关键字,直接对全局st2赋值:
    例如将let st2 = parseInt(st1) + 4;改为st2 = parseInt(st1) + 4;
  2. 同理,第三步的函数中也不需要重新声明let st3,直接修改全局变量即可(若需保留全局st3)。

修正后的第二步函数示例:

function seventeen() {
    st2 = parseInt(st1) + 4; // 去掉let,直接修改全局st2
    document.getElementById("step2").innerHTML = "Complete";
    console.log(st2)
}

修正后的第三步函数示例:

function under5() {
    st3 = st2 + 0; // 去掉let
    document.getElementById("step3").innerHTML = "Complete";
    console.log(st3);
}

修改后,全局st2会被正确赋值,第三步计算st3时就能得到预期的10-15左右的数值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:49:13