一 JS运行机制:http://www.ruanyifeng.com/blog/2014/10/event-loop.html
JavaScript是单线程运行的(防止多个线程操作DOM,无法判断以哪个线程为准),HTML5提出WebWorker可以创建子线程,该线程完全受控制与主线程,且不能操作DOM(子线程可用于计算复杂数据)。
单线程就意味着,所有任务需要排队,前一个任务结束,才会执行后一个任务。如果前一个任务耗时很长,后一个任务就不得不一直等着。JavaScript分为同步任务(synchronous)与异步任务(asynchronous)
二 宏任务与微任务:https://www.jianshu.com/p/bfc3e319a96b
以宏任务和微任务进一步理解js执行机制:
原文:https://www.cnblogs.com/terrymin/p/14550296.html