定时器(Timer)是 JavaScript 中用于延迟执行代码或周期性重复执行代码的机制。在 JavaScript 中,你可以使用两种主要类型的定时器:setTimeout()
和 setInterval()
。
- setTimeout():
setTimeout()
用于在一定时间后执行一次指定的函数或代码块。它接受两个参数:要执行的函数或代码块以及延迟的毫秒数。
setTimeout(function() { console.log('这段代码将在2秒后执行'); }, 2000); // 2000毫秒 = 2秒
- 在上述示例中,
setTimeout()
将在2秒后执行传递的函数,即在控制台输出一条消息。 - setInterval():
setInterval()
用于以指定的时间间隔重复执行指定的函数或代码块。它也接受两个参数:要执行的函数或代码块以及时间间隔的毫秒数。
setInterval(function() { console.log('这段代码将每隔3秒执行一次'); }, 3000); // 3000毫秒 = 3秒
- 在上述示例中,
setInterval()
将每隔3秒执行一次传递的函数,即在控制台输出一条消息。
需要注意的是,虽然定时器可以用于执行延迟或周期性的任务,但过多的定时器可能会导致性能问题。确保谨慎使用定时器,并在不需要时及时清除它们,可以使用 clearTimeout()
和 clearInterval()
来取消 setTimeout()
和 setInterval()
创建的定时器。
例如,要取消之前创建的 setTimeout()
:
const timeoutId = setTimeout(function() { console.log('这段代码将在2秒后执行'); }, 2000); // 取消定时器 clearTimeout(timeoutId);
或者取消之前创建的 setInterval()
:
const intervalId = setInterval(function() { console.log('这段代码将每隔3秒执行一次'); }, 3000); // 取消定时器 clearInterval(intervalId);
这样可以避免不必要的任务重复执行,提高代码的效率。