setTimeout只执行一次,setInterval周期性重复执行;前者用于延迟操作,后者用于轮询或倒计时,均需用clearTimeout/clearInterval手动清除以防内存泄漏。

JavaScript 中最常用的定时器就是 setTimeout 和 setInterval,它们都属于浏览器 window 对象的方法,用于控制代码在指定时间后执行。
setTimeout:只执行一次的延迟操作
它会在设定的毫秒数之后,执行一次指定的函数或代码段。执行完就自动结束,不会重复。
适合做“等一会儿再干某事”,比如页面加载后延迟显示提示、防抖逻辑、动画启动延时 可以传入函数引用或箭头函数,支持直接传参(现代浏览器):setTimeout(greet, 1000, 'Alice') 必须用 clearTimeout(id) 才能提前取消,否则到点必执行
setInterval:周期性重复执行
它会按固定间隔(毫秒)反复调用函数,像心跳一样持续运行,直到被手动清除或页面关闭。
适合轮询数据、倒计时、实时刷新状态、简易动画帧控制 同样支持函数引用和参数传递:setInterval(updateClock, 1000) 务必配合 clearInterval(id) 使用,否则容易造成内存泄漏或重复请求
关键区别一句话总结
setTimeout 是“等一次就完事”,setInterval 是“每隔一阵就来一遍”——前者靠时间点触发,后者靠时间间隔驱动。
立即学习“Java免费学习笔记(深入)”;
小提醒:别踩这些坑
传字符串形式的代码(如 setTimeout('alert(1)', 1000))已不推荐,存在安全与性能问题,优先用函数 setInterval 不保证严格准时,如果前一次执行耗时过长,下一次会紧接着执行(不会累积延迟) 在单页应用中,离开页面前记得清理定时器,避免后台无效运行
以上就是javascript定时器有哪些_setTimeout和setInterval有何区别的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1543875.html
微信扫一扫
支付宝扫一扫