JavaScript 定时器详解:setTimeout 与 setInterval 的使用及最佳实践
作者:青柠时间:2026-10-26 19:07:15浏览:282
本文深入解析 JavaScript 中的两种核心定时器机制:超时调用(setTimeout)与间歇调用(setInterval)。详细说明了它们的参数、返回值及取消方法,并通过代码示例展示了如何创建和清除定时器。文章最后指出,由于间歇调用可能导致的执行堆积问题,推荐使用递归的超时调用作为更稳健的替代方案,以确保代码执行的准确性和时序控制。
超时调用 setTimeout 的使用方法
1. 超时调用 setTimeout()
setTimeout() 方法接收两个参数:第一个是待执行的函数,第二个是延迟时间(单位为毫秒),该方法会返回一个唯一的数值 ID。
代码如下:
setTimeout( function () {
alert("你好!");
},1000); 在调用之前,可以通过 clearTimeout() 来取消超时调用,该方法接收一个参数,即超时调用的 ID。
代码如下:
var timeOutId = setTimeout( function () {
alert("你好!");
},1000);
clearTimeout(timeOutId); 间歇调用 setInterval 的使用方法
2. 间歇调用 setInterval()
setInterval() 方法同样接收两个参数:第一个是待执行的函数,第二个是间隔时间(单位为毫秒),该方法也会返回一个唯一的数值 ID。
代码如下:
setInterval( function () {
alert("你好!");
},1000); 要取消间歇调用,可以使用 clearInterval(),该方法接收一个参数,即间歇调用的 ID。
代码如下:
var intervalId = null;
var span = document.createElement("span"); //创建span节点
span.Id="time"; //设置span的id
document.body.appendChild(span); //body内添加span
function incrementNumber () {
var now = new Date();
var timeStr = now.toLocaleTimeString();
span.innerText =timeStr;
num++;
if (num == 10) {
clearInterval(intervalId); //十秒后时间不变了
}
}
intervalId = setInterval(incrementNumber,1000); 使用超时调用替代间歇调用的最佳实践
3. 尽量用超时调用替代间歇调用
代码如下:
var num = 0;
var max = 10;
function incrementNumber() {
num++;
if (num<max) {
setTimeout(incrementNumber,1000);
} else {
alert("OK");
}
}
setTimeout(incrementNumber,1000);作者最新文章
ES6模块化中js文件怎么用import和export交互
2026-11-05 17:00:48
JS读取本地文件时报错或无响应的常见原因
2026-11-05 16:32:31
let、const与var的区别:JavaScript变量声明最佳实践
2026-11-05 14:16:38
JS中直接定义静态二维数组的字面量写法
2026-11-05 14:16:08
JS 怎么查找字符串中所有匹配项的位置
2026-11-05 14:15:53
