事件循环
是由宏任务和在执行宏任务期间产生的所有微任务组成。完成当下的宏任务后,会立刻执行所有在此期间入队的微任务。
二、宏任务和微任务有哪些?
宏任务:整体代码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分钟后才能触发函数 本质:将多次执行变成每隔一段时间执行
防抖就是“一直抖”(频繁触发事件),直到停下来了才执行最后那一次触发;节流就是按照规定时间间隔来,这个规定时间内只执行一次。