JavaScript clearTimeout() & clearInterval() 方法


JavaScript 中,clearTimeout()clearInterval() 方法用于清除定时器。当我们使用 setTimeout()setInterval() 方法设置定时器时,浏览器会分配内存来跟踪它。

因此,我们使用这些方法来释放该内存并避免不必要的函数调用。

当不再需要定时器时,最好清除它们。在本文中,我们将学习 clearTimeout() 和 clearInterval() 方法如何帮助清除定时器。

JavaScript clearTimeout() 方法

JavaScript 中的 clearTimeout() 方法 清除先前由 setTimeout() 函数 设置的超时。它接受一个整数值作为参数,如果此参数无法识别先前设置的操作,则该方法什么也不做。

语法

此方法具有以下语法:

clearTimeout(timeout)

其中,timeout 是调用 setTimeout() 返回的 ID。此参数充当要清除的超时的标识符。

示例

以下示例说明了 JavaScript clearTimeout() 方法的工作原理。

<!DOCTYPE html>
<html>
<head>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .timeout {
      margin-right: 170px;
      display: inline-block;
      width: 200px;
      height: 200px;
   }
   .stopTimeout {
      margin-right: 100px;
   }
</style>
</head>
<body>
<h1>clearTimeout() Method </h1>
<div class="timeout" style="background-color: blue;"></div>
<br />
<button class="startTimeout" onclick="startTimeout()">START TIMEOUT</button>
<button class="stopTimeout" onclick="stopTimeout()">STOP TIMEOUT</button>
<div class="resultTimeout"></div>
<script>
   let resTimeout = document.querySelector(".resultTimeout");
   function changeColor(ele) {
      if (ele.style.backgroundColor == "blue") {
         ele.style.backgroundColor = "red";
      } else {
         ele.style.backgroundColor = "blue";
      }
   }
   let timeout;
   function startTimeout() {
      timeout = setTimeout(
      changeColor.bind(this, document.querySelector(".timeout")),
      1500
   );
   resTimeout.innerHTML = "Timeout has been started";
}
function stopTimeout() {
   clearTimeout(timeout);
   resTimeout.innerHTML = "Timeout has been cleared";
}
</script>
</body>
</html>

运行以上代码后,将显示一个蓝色方框以及两个按钮。单击 "START TIMEOUT" 按钮将启动计时器,当您单击 "STOP TIMEOUT" 按钮时,计时器将被清除。

JavaScript clearInterval() 方法

JavaScript 中的 clearInterval() 方法 清除先前由 setInterval() 函数 设置的间隔。它接受一个整数作为参数值,如果此参数无法识别先前设置的操作,则该方法什么也不做。

语法

此方法的语法如下:

clearInterval(interval)

其中,interval 是调用 setInterval() 返回的 ID。此参数充当要清除的操作的标识符。

示例

以下是 clearInterval() 方法的代码:

<!DOCTYPE html>
<html>
<head>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .interval {
      display: inline-block;
      width: 200px;
      height: 200px;
   }
   .stopTimeout {
      margin-right: 100px;
   }
</style>
</head>
<body>
<h1>clearInterval() Method</h1>
<div class="interval" style="background-color: blue;"></div>
<br />
<button class="startInterval" onclick="startInterval()">START INTERVAL</button>
<button class="stopInterval" onclick="stopInterval()">STOP INTERVAL</button>
<div class="resultInterval"></div>
<script>
   let resInterval = document.querySelector(".resultInterval");
   function changeColor(ele) {
      if (ele.style.backgroundColor == "blue") {
         ele.style.backgroundColor = "red";
      } else {
         ele.style.backgroundColor = "blue";
      }
   }
   let interval;
   function startInterval() {
      interval = setInterval(
         changeColor.bind(this, document.querySelector(".interval")),
         1500
      );
      resInterval.innerHTML = "Interval has been started";
   }
   function stopInterval() {
      clearInterval(interval);
      resInterval.innerHTML = "Interval has been cleared";
   }
</script>
</body>
</html>

执行以上代码后,将显示一个蓝色方框以及两个按钮。单击 "START INTERVAL" 按钮将启动计时器,当您单击 "STOP INTERVAL" 按钮时,计时器将被清除。

更新于: 2024年7月30日

2K+ 阅读量

开启您的 职业生涯

通过完成课程获得认证

开始学习
广告