Event Loop

69 阅读1分钟

事件循环

是由宏任务和在执行宏任务期间产生的所有微任务组成。完成当下的宏任务后,会立刻执行所有在此期间入队的微任务。

image.png

二、宏任务和微任务有哪些?

宏任务:整体代码script、setTimeout、setInterval、setImmediate、i/o操作(输入输出,比如读取文件操作、网络请求)、ui render(dom渲染,即更改代码重新渲染dom的过程)、异步ajax等

微任务:Promise(then、catch、finally)、async/await、process.nextTick、Object.observe(⽤来实时监测js中对象的变化)、 MutationObserver(监听DOM树的变化)

参考链接:juejin.cn/post/688660… code:blog.csdn.net/lq313131/ar…

节流防抖

防抖 debounce :触发一次函数后 再次触发 时间重新计算 (设置1分钟只会执行一次,如果1分钟内又多次触发,会从再次触发开始重新计算1分钟时间,然后再执行) 本质:将多次执行变为最后一次执行

节流 throttle : 设置1分钟只会执行一次,一分钟内,多次触发无效,必须等1分钟后才能触发函数 本质:将多次执行变成每隔一段时间执行

防抖就是“一直抖”(频繁触发事件),直到停下来了才执行最后那一次触发;节流就是按照规定时间间隔来,这个规定时间内只执行一次。