Event 全局对象
https://developer.mozilla.org/en-US/docs/Web/API/Event
事件循环机制 event loop
https://cloud.tencent.com/developer/article/1448150
https://ths.js.org/2020/12/13/%E7%94%A8%E5%8F%AF%E8%A7%86%E5%8C%96%E7%9A%84%E6%96%B9%E5%BC%8F%E8%A7%A3%E9%87%8A%E4%BA%8B%E4%BB%B6%E5%BE%AA%E7%8E%AF%E5%92%8CPromise/
浏览器 javascript 的机制
https://learnku.com/articles/38802
setTimeout(fn,0)的原因及妙用 比如防抖函数
https://segmentfault.com/a/1190000013538587
setInterval(fn, 100) 执行间隔非预期
https://article.itxueyuan.com/9vEZ8
setTimeout()和 setInterval()的运行机制是,将指定的代码移出本次执行,等到下一轮 Event Loop 时,再检查是否到了指定时间。
如果到了,就执行对应的代码;如果不到,就等到再下一轮 Event Loop 时重新判断。这意味着,setTimeout()指定的代码,必须等到本次执行的所有代码都执行完,才会执行。
比如一个 setTimeout,指定 100 毫秒以后运行一个任务。但是,如果后面立即运行的任务(当前脚本的同步任务))非常耗时,过了 100 毫秒还无法结束,那么被推迟运行的 someTask 就只有等着,等到前面的 veryLongTask 运行结束,才轮到它执行
NodeJs 端的机制
两个环境下的动图对比
http://lynnelv.github.io/js-event-loop-nodejs