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

JavaScript公式返回NaN值问题排查:游戏升级系统中shaftDepth计算异常

问题分析与解决方案

嘿,这个NaN问题其实是变量声明顺序的小失误,你的升级功能实现思路是完全没问题的!

为什么会出现NaN?

在JavaScript中,使用var声明的变量会存在变量提升,但变量的赋值并不会被提升。看你的代码:

var shaftDepth = 1; 
var nextShaftDepth = ((maxThreshold - shaftDepth) / 20) + shaftDepth; 
var maxThreshold = 10; 

当计算nextShaftDepth的时候,maxThreshold还没有被赋值,此时它的值是undefined。undefined和数字进行运算会得到NaN,最终导致nextShaftDepth变成NaN。

修正后的代码

只需要调整变量的声明顺序,把maxThreshold的赋值放到计算之前:

var maxThreshold = 10; 
var shaftDepth = 1; 
var nextShaftDepth = ((maxThreshold - shaftDepth) / 20) + shaftDepth; 

运行这段代码后,nextShaftDepth的值就会是你预期的1.45了。

关于你的升级思路验证

你的公式逻辑是对的:每次让shaftDepth向maxThreshold靠近当前距离的5%(因为(maxThreshold - shaftDepth)/20就是当前距离的1/20,也就是5%),这样两者之间的距离就会减少5%,完全符合你想要的升级效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 18:14:08