js 实现setinterval
使用 setInterval 的基本语法
setInterval 是 JavaScript 中用于周期性执行代码的函数。语法如下:
setInterval(function, delay, [arg1, arg2, ...]);
function:需要重复执行的函数。delay:每次执行之间的时间间隔(毫秒)。arg1, arg2, ...(可选):传递给函数的参数。
示例代码
以下是一个简单的 setInterval 示例,每隔 1 秒打印一次当前时间:
function logTime() {
console.log(new Date().toLocaleTimeString());
}
const intervalId = setInterval(logTime, 1000);
停止 setInterval
使用 clearInterval 可以停止 setInterval 的执行。需要传入 setInterval 返回的 ID:
// 停止定时器
clearInterval(intervalId);
传递参数
可以通过 setInterval 的第三个参数及之后的参数向回调函数传递参数:
function greet(name) {
console.log(`Hello, ${name}!`);
}
setInterval(greet, 2000, 'Alice');
使用箭头函数
箭头函数可以简化代码:
setInterval(() => {
console.log('Tick');
}, 500);
注意事项
setInterval不会考虑回调函数的执行时间。如果回调函数执行时间超过delay,可能会导致多个回调函数堆积。- 避免内存泄漏,确保在不需要时调用
clearInterval清理定时器。
替代方案
如果需要更精确的定时控制,可以使用 setTimeout 递归调用:

function repeat() {
console.log('Recursive timeout');
setTimeout(repeat, 1000);
}
setTimeout(repeat, 1000);
这种方法可以确保每次回调执行完成后才开始下一次计时。






