JavaScript 中延时器和定时器是非常常用的两个工具,它们提供了调度代码执行的机制,帮助我们实现更加智能的前端交互效果。
- 延时器(setTimeout)
setTimeout()
方法用于在指定的时间后执行一段代码。它接受两个参数:第一个参数指定要执行的代码,第二个参数指定何时执行该代码(单位是毫秒)。
示例代码:
console.log('start');
setTimeout(() => {
console.log('延时器回调执行');
}, 3000);
console.log('end');
在上面的代码中,首先打印 start
,之后定义了一个 setTimeout
延时器,它将在 3 秒(即 3000 毫秒)后执行一个回调函数,回调函数中打印 延时器回调执行
。最后打印 end
。因此,控制台输出结果应该是:
start
end
延时器回调执行
- 定时器(setInterval)
setInterval()
方法用于按照指定的时间间隔重复执行一个代码块,它接受两个参数:第一个参数指定要执行的代码,第二个参数指定执行的时间间隔(单位是毫秒)。
示例代码:
console.log('start');
let intervalId = setInterval(() => {
console.log('定时器回调执行');
}, 1000);
setTimeout(() => {
clearInterval(intervalId);
console.log('定时器已取消');
}, 5000);
console.log('end');
在上面的代码中,首先打印 start
,之后定义了一个 setInterval
定时器,它将每秒重复执行一个回调函数,回调函数中打印 定时器回调执行
。同时,我们还定义了一个 setTimeout
延时器,在 5 秒后取消 setInterval
定时器,并在控制台中打印 定时器已取消
。最后打印 end
。因此,控制台输出结果为:
start
end
定时器回调执行
定时器回调执行
定时器回调执行
定时器已取消
需要注意的是,定时器和延时器执行的次数取决于代码的执行时间。如果代码执行的时间超过了延时器或定时器规定的执行时间,那么后续的执行就会被延迟。因此,在使用这些函数时,需要仔细考虑执行时间和代码复杂度,以免引起不必要的问题。