随便写写自己的理解。 EventLoop,也就是事件循环,想理解这个概念先得知道JavaScript是一门单线程执行的脚本语言,一次只能做一件事情。
但是在浏览器中又是多线程执行的,任务多了之后就需要在任务队列进行排队。在浏览器的主线程中依次执行,这个过程不断重复从而形成一个循环,称为事件循环。
平时执行代码都是先执行同步代码,再执行异步代码。而异步代码因为不是马上执行,需要再队列里面等待。 但是如果所有代码都排队,也不行,需要有一个可以插队的机制,就诞生了微任务和宏任务。
可以理解为在异步代码里面,微任务就是可以插队的代码,宏任务只能乖乖排队。
常见的微任务有:Promise.[then/catch/finally]等等
常见的宏任务有:异步Ajax请求、setTimeout、setInterval、script(整体代码块)等等