Javascript JS:从函数外部调用变量

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(在函数内部声

所以,我在函数之前输入变量,让它们随着每次函数调用而增长。 但是,当我试图打印它们或在计算中使用它们时,JS返回NaN或undefined。从函数外部调用时,一切正常。 我错过了什么

Upd:哦,密码


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