JavaScript clearTimeout() 语法
clearTimeout() 是 JavaScript 的一个全局函数(也叫 “全局方法” ),它用于清除 setTimeout() 实现的定时器。
在浏览器环境中,clearTimeout() 是 window 对象的方法。而在 Node.js 环境中,它是 global 对象的方法。
语法:
clearTimeout(timerID)说明:
clearTimeout() 方法接收单个参数。
timerID(必选):它是 setTimeout() 的返回值。
setTimeout() 会返回一个值(浏览器返回一个正整数、Node.js 返回一个对象),该值用于标识定时器的 ID。我们可以将此 ID 与 clearTimeout() 一起使用,从而达到取消定时器的目的。
注意: 虽然 setTimeout() 和 setInterval() 在某些浏览器环境中它们的 ID 可能互通,但为了代码的规范和安全,请务必坚持专人专用:setTimeout 配 clearTimeout,setInterval 配 clearInterval()。
JavaScript clearTimeout() 摘要
| 属于 | JavaScript window 对象 |
|---|---|
| 使用频率 | 高 |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript clearTimeout() 示例
接下来,我们通过一个简单的例子来讲解一下 JavaScript clearTimeout() 方法是如何使用的。
示例:clearTimeout() 基本用法
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body>
<p>点击【开始】按钮,3秒后提示欢迎语。</p>
<button type="button">开始</button>
<button type="button">暂停</button>
<script>
// 注意:这里需要获取 "button" 标签,而不是原来的 "input"
const oBtns = document.getElementsByTagName("button");
let timer = null;
// 3. 使用 addEventListener 监听事件
// 绑定第一个按钮(开始)
oBtns[0].addEventListener("click", function() {
// 为了防止用户多次点击导致开启多个定时器,
// 实际开发中通常建议在这里加一行 clearTimeout(timer);
timer = setTimeout(() => {
alert("欢迎来到绿叶网");
}, 3000);
});
// 绑定第二个按钮(暂停/取消)
oBtns[1].addEventListener("click", function() {
clearTimeout(timer);
});
</script>
</body>
</html>页面效果如下图所示。

分析:
当我们单击【开始】按钮,3 秒后就会弹出对话框。如果在单击【开始】按钮之后,并且在 3 秒内再单击【暂停】按钮,就不会弹出对话框。
这里定义了一个变量 timer 用于保存 setTimeout() 这个定时器,以便使用 clearTimeout(timer) 来清除(暂停)。
注意: 即使我们不显式地主动使用 clearTimeout() 来清除 setTimeout() 定时器,定时器到时间后也会自动被清除。
clearTimeout() 与 clearInterval() 的区别
clearTimeout() 和 clearInterval() 都是用于清除一个定时器,它们之间的区别在于:
- 对于 setTimeout() 实现的定时器,应该使用 clearTimeout() 来取消。
- 而对于 setInterval() 实现的定时器,应该使用 clearInterval() 来取消。
