为什么我的间隔还在计数,并没有停在 0?

Why my interval is still counting and didn't stop at 0?

我想知道为什么我的倒计时没有在 0 处停止,“时间到”日志仍在无限记录。

这是我的代码:

let timer = 6;
setInterval(function () {
  if (timer > 0) {
    timer--;
  console.log(timer);
  } else {
    console.log("Time's Up");
    clearInterval(timer);
  }
}, 1000);

clearInterval 需要知道您要取消的操作。在这种情况下,该操作实际上是您的 setInterval,因此只需将其分配给一个变量并将该变量用作 clearInterval.

的参数
 const myInterval = setInterval(() => {
  if (timer > 0) {
    timer--;
  console.log(timer);
  } else {
    console.log("Time's Up");
    clearInterval(myInterval);
  }
}, 1000); 

据我了解,您将计时器用作变量。所以,你犯了一个错误,你在 clearInterval 方法中给出了错误的参数。您可以通过以下代码停止 clearInterval 方法:-

注意:- 我只是将 console.log 替换为 document.write 以在屏幕上显示输出。

var timer = 5;
var myinterval = setInterval(function () {
    if (timer > 0) {
      timer--;
    document.write(timer+"<br>");
    } else {
      document.write("Time's Up");
      clearInterval(myinterval);
    }
  }, 1000);