JavaScript 倒计时无法解析整数

JavaScript countdown cannot parse integer numbers

<html>
    <body>
        <a id="haha">5</a>
        <script type="text/javascript">
            var myVar = setInterval(function(){apa()}, 1000);
            var f = 5;

            function apa() {
                document.getElementById("haha").innerHTML = f;
                f--;
                apa();
            }       
        </script>
    </body>
</html>

我尝试使用计时器和递减量进行倒计时,但输出结果不是整数(5、4、3、2、1、......),而是 -336048 等。 我该如何解决这个问题?

不应在 apa 内调用 apa() 它会创建无限递归。 setInterval() 将以 1 秒的间隔调用 apa,因此无需再次调用它。

//also there is no need to use a anonymous function you can just say
//var myVar = setInterval(apa, 1000);
var myVar = setInterval(function () { 
    apa()
}, 1000);
var f = 5;

function apa() {
    document.getElementById("haha").innerHTML = f;
    f--;
}

var myVar = setInterval(apa, 1000); //just pass the apa reference to setInterval
var f = 5;

function apa() {
  document.getElementById("haha").innerHTML = f;
  f--;
}
<a id="haha">5</a>

你可以试试这个。这只会计算 (5 4 3 2 1)

var myVar=setInterval(function(){if(f>0) apa()},1000);
        var f=5;
         function apa() 
        {
            document.getElementById("haha").innerHTML = f;
            f--;
        }