js基础之setTimeout与setInterval原理分析

💡 原文中文,约4100字,阅读约需10分钟。
📝

内容提要

setTimeout和setInterval是JavaScript引擎提供的定时器方法,用于延时执行和循环调用函数。它们的执行方式稍微复杂,setTimeout在计时结束后将函数添加到任务队列,而setInterval每隔一定时间添加函数。两者都无法保证何时执行回调,但setTimeout只添加一次函数,而setInterval循环添加。开发者通常使用setTimeout模拟setInterval来避免连续执行函数的情况。

🎯

关键要点

  • setTimeout和setInterval是JavaScript的定时器方法,用于延时执行和循环调用函数。
  • setTimeout在计时结束后将函数添加到任务队列,而setInterval每隔一定时间添加函数。
  • JavaScript是单线程的,任务队列用于存储等待执行的任务。
  • setTimeout只添加一次函数,而setInterval循环添加函数。
  • setTimeout的运行机制是设置一个定时器,计时结束后将函数加入任务队列。
  • setInterval每隔一定时间向任务队列添加回调函数,但可能导致性能问题。
  • 开发者通常使用setTimeout模拟setInterval,以避免函数连续执行。
  • setTimeout适用于需要延时调用的场景,而setInterval适用于外部接口或动画效果。
  • setTimeout和setInterval的参数可以是函数名、匿名函数或字符串,但需注意格式。
  • 延迟时间为0时,回调函数不会立即执行,浏览器有最短计时时间限制。
➡️

继续阅读