JavaScript中的执行机制、任务队列、宏任务和微任务
JavaScript是单线程的
- JavaScript是单线程的,意味着在同一时间时,只能做一件事情。
- JavaScript的只要任务是操作DOM和用户进行交互,这决定了只能是单线程的。假如JavaScript是多线程的,一个线程在进行渲染DOM,而另一个线程在进行的DOM的删除,这必然会带来冲突。JavaScript的单线程已经成为其语言的最大特点。
任务队列 (task Queue)
在JS中,共有两种任务:同步任务和异步任务
- 同步任务进入主线程,等本次任务执行完毕后,在执行下一个任务
- 异步任务:不进入主线程,进入任务队列,只有主线程通知异步任务和执行了,才会按需进行执行。