JavaScript定时器用于延迟或重复执行代码,主要包含setTimeout(延迟执行一次)和setInterval(周期性重复执行),二者均可通过clearTimeout和clearInterval清除,需注意定时器延迟不精确、避免内存泄漏及合理封装使用。

JavaScript定时器用于在指定时间后执行代码,或按固定间隔重复执行。主要有两种定时器:setTimeout 和 setInterval,它们都属于浏览器的 window 对象(在 Node.js 中是 global 对象)。
1. setTimeout:延迟执行一次
在指定毫秒数后执行一次函数,常用于延迟操作。
语法:
setTimeout(function, delay, param1, param2, …)
function:要执行的函数 delay:延迟时间(毫秒) param:传递给函数的参数(可选)
示例:
setTimeout(() => { console.log("3秒后打印");}, 3000);
清除定时器使用 clearTimeout:
const timerId = setTimeout(() => { console.log("不会执行");}, 2000);// 取消定时器clearTimeout(timerId);
2. setInterval:周期性重复执行
每隔指定时间重复执行函数,适用于轮询、倒计时等场景。
语法:
setInterval(function, interval, param1, param2, …)
interval:重复间隔时间(毫秒)
示例:每秒打印一次
const intervalId = setInterval(() => { console.log("每秒打印一次");}, 1000);
停止重复执行需调用 clearInterval:
// 5秒后停止setTimeout(() => { clearInterval(intervalId); console.log("停止重复执行");}, 5000);
3. 注意事项与技巧
定时器的延迟不精确,受浏览器性能、任务队列影响,实际执行可能稍有延迟 避免在循环中直接创建未保存 ID 的定时器,否则无法清除 在组件销毁或页面跳转前务必清除定时器,防止内存泄漏 可以结合 Promise 封装更灵活的延时函数
封装一个延迟函数:
function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms));}// 使用async function demo() { console.log("开始"); await delay(2000); console.log("2秒后执行");}
基本上就这些。掌握 setTimeout 和 setInterval 的基本用法和清除方式,就能应对大多数定时任务需求。
以上就是js定时器使用方法的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1537687.html
微信扫一扫
支付宝扫一扫