setTimeout只执行一次,setInterval周期性重复执行;前者适用于延时操作如防抖,后者用于轮询或倒计时,但需clearInterval手动清除以防内存泄漏。
JavaScript 中的 setTimeout 和 setInterval 都是用来延迟或周期性执行代码的计时器函数,核心区别在于:一个只执行一次,另一个会反复执行。
它在指定毫秒数后,执行一次回调函数。适合做“等一会儿再干某事”,比如页面加载后延时提示、防抖操作、模拟异步响应等。
setTimeout(回调函数, 延迟毫秒数, ...参数)
clearTimeout(id)
它每隔指定毫秒数就执行一次回调,直到被手动清除。常用于轮询、动画帧模拟、倒计时刷新等场景。
setInterval(回调函数, 间隔毫秒数, ...参数)
clearInterval(id) 停止setTimeout(() => obj.do(), 100)
setTimeout(fn, 100, arg1, arg2)
et timer = setTimeout(() => { count--; if (count > 0) timer = setTimeout(...); }, 1000);