Javascript Math.pow在计算中返回0

Javascript Math.pow在计算中返回0,javascript,Javascript,我目前正在制作一个计算器,我遇到了一个问题,其中一个函数,特别是x^y,它一直返回0,甚至看起来根本没有运行setInterval,尽管它在没有if函数的情况下运行。fn是它使用的函数,它是x^y,vi只是计算器中的一个工具,用来区分你在反应物中改变的数字,或反应物t2,在这种情况下,反应物是两个相互平方的数字。(这只是代码中有问题的部分) 或者它没有发生。我限制了它,因为它很长,有点tbh(作为一个noob)“凌乱”。但我会把完整的代码放进去。我理解他为什么想要MCVE,当按下=符号时,vi设

我目前正在制作一个计算器,我遇到了一个问题,其中一个函数,特别是x^y,它一直返回0,甚至看起来根本没有运行setInterval,尽管它在没有if函数的情况下运行。fn是它使用的函数,它是x^y,vi只是计算器中的一个工具,用来区分你在反应物中改变的数字,或反应物t2,在这种情况下,反应物是两个相互平方的数字。(这只是代码中有问题的部分)


或者它没有发生。我限制了它,因为它很长,有点tbh(作为一个noob)“凌乱”。但我会把完整的代码放进去。我理解他为什么想要MCVE,当按下=符号时,vi设置为0,这允许用户在x^y中键入y,我现在把所有的代码都放进去了,但大约是400lines@BennMCVE!=“所有代码”那么我应该将其设置为4ms以上吗?我该换什么
        function click15(){
    if (reactant > 0) {
    reactant = parseFloat(reactant);
}
if (reactant2 > 0) {
    reactant2 = parseFloat(reactant2);
}

if (fn === 0) {
    product = reactant / reactant2;
} else if (fn === 1) {
    product = reactant * reactant2;

} else if (fn === 2) {
    product = reactant - reactant2;

} else if (fn === 3) {
    product = reactant + reactant2;

} else if (fn === 4) {
    if (vi === 0) {
        vi = 1;
    var timer = setInterval(function(){
        if (vi === 0) {
            product = (Math.pow(reactant, reactant2));
            clearInterval(timer);
        }
    }, 4);
}
}

    reactant = product;
    product = 0;
    reactant2 = "0";
    vir = 0;
    vir2 = 0;
    vi = 0;
    di1 = 0;
    di2 = 0;
    fn = -1;
}