Javascript JS:从函数外部调用变量
所以,我在函数之前输入变量,让它们随着每次函数调用而增长。 但是,当我试图打印它们或在计算中使用它们时,JS返回NaN或undefined。从函数外部调用时,一切正常。 我错过了什么 Upd:哦,密码Javascript JS:从函数外部调用变量,javascript,function,nan,Javascript,Function,Nan,所以,我在函数之前输入变量,让它们随着每次函数调用而增长。 但是,当我试图打印它们或在计算中使用它们时,JS返回NaN或undefined。从函数外部调用时,一切正常。 我错过了什么 Upd:哦,密码 Upd2:通过使用各种方法声明var,在使用8+9输出测试它时,我仍然得到NaN和未定义。使用window.GLD和GLD=0代替var GLD=0;就我所知,我可以在函数中声明它而不使用var,并且不影响它。但如何从函数外部拖动变量呢 Upd3:在尝试使用var GLD=GLD+1(在函数内部声
Upd2:通过使用各种方法声明var,在使用8+9输出测试它时,我仍然得到NaN和未定义。使用window.GLD和GLD=0代替var GLD=0;就我所知,我可以在函数中声明它而不使用var,并且不影响它。但如何从函数外部拖动变量呢 Upd3:在尝试使用var GLD=GLD+1(在函数内部声明)之后,我仍然得到NaN。最后一个问题是:如何从外部将变量内容输入函数
var depth = 0;
var maxHP = 10;
var currentHP = 10;
var DMG = 2;
var ARM = 1;
var GLD = 0;
var currentExp = 0;
var neededExp = 5;
var GobHP = 2;
var GobHPMax = 2;
var CurrentGobHP=2
var GobDMG = 1;
var GobDEF = 0;
var GobBSInc = 2;
var GobexpInc = 2;
var GobDmgDone = 1;
var dmgDone=0;
var wpnTier=0;
var turn=1;
var nextEvent=0;
document.getElementById("statusChar").innerHTML="HP: "+currentHP+"/"+maxHP+" DMG: "+DMG+" ARM: "+ARM+" GLD: "+GLD+" EXP: "+currentExp+"/"+neededExp+" Depth: "+depth;
//It's ok here - code dosent goes NaN or undefined
function goDeeper()
{ depth++;
document.getElementById("statusChar").innerHTML="HP: "+currentHP+"/"+maxHP+" DMG: "+DMG+" ARM: "+ARM+" GLD: "+GLD+" EXP: "+currentExp+"/"+neededExp+" Depth: "+depth;
// and here it dies. Prompt to stop it from going to next step.
prompt();
您提供的功能几乎可以正常工作:函数goDeeper()没有结尾}。以下是几乎不变的函数:
function goDeeper()
{
depth++;
document.getElementById("statusChar").innerHTML += "<br>HP: " + currentHP + "/" + maxHP + " DMG: " +DMG + " ARM: " + ARM + " GLD: " + GLD + " EXP: " + currentExp + "/" + neededExp + " Depth: " + depth;
// prompt();
}
因此,如果您对undefined/NaN仍然有问题,那么应该是其他问题。共享您尝试过的代码。在Javascript中,您可以使用全局变量和局部变量,谷歌可以在这两个方面进行搜索。:)另外,通过使用各种方法声明var,在使用8+9输出测试它时,我仍然得到NaN和未定义。使用window.GLD和GLD=0代替var GLD=0;就我所知,我可以在函数中声明它而不使用var,并且不影响它。但我如何从函数外部拖动变量呢?你们能不能把问题隔离到几行代码中,而不是复制你们的整个源代码?若我知道出了什么问题的话,我想这样做。不过我已经把它删掉了,我希望我没有错过什么重要的东西。嗨!谢谢看起来这是一个正确的解决方案,但我已经通过从头开始重新创建goDeeper来实现了这一点,也使它变得更容易,并进行了一些代码练习。但我还是很感激:3
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 0
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 1
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 2
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 3
HP: 10/10 DMG: 2 ARM: 1 GLD: 0 EXP: 0/5 Depth: 4