setTimeout:
setTimeout
用于在指定的延迟时间后执行一次函数。- 它接受两个参数:第一个是要执行的函数,第二个是延迟时间(以毫秒为单位)。
- 一旦函数执行,计时器就会被清除,除非再次设置
setTimeout(() => {
console.log('这条信息将在3秒后打印');
}, 3000);
setInterval
:
setInterval
用于按照指定的时间间隔重复执行函数。- 它也接受两个参数:第一个是要重复执行的函数,第二个是时间间隔(以毫秒为单位)。
- 函数会持续重复执行,直到使用
clearInterval
明确地停止它。
const intervalId = setInterval(() => {
console.log('这条信息将每2秒打印一次');
}, 2000);
// 假设我们想在10秒后停止重复执行
setTimeout(() => {
clearInterval(intervalId);
}, 10000);
主要区别:
- 执行次数:
setTimeout
只执行一次,而setInterval
会持续执行,直到被停止。 - 计时器控制:
setTimeout
在执行一次后自动清除,setInterval
需要手动清除(使用clearInterval
)。 - 用途:
setTimeout
适合需要延迟执行一次的场景,如加载动画、延时提示等;setInterval
适合需要周期性执行的任务,如定时更新数据、重复动画等