浏览器进程和线程

浏览器采用多进程模型,如网络进程,渲染进程,每个进程都是独立的不相互影响,即使有一个标签页崩溃了其他的也可以正常执行。每个进程又有许多的线程。

渲染线程

主要是负责处理和呈现图片的线程。渲染主线程只有一个,js就在它上,同时js是单线程的,就是从前到后执行的那种。
同步: 就是按1,2,3这种顺序执行主线程上的任务。
异步: 就比如一个setTimeout,或者ajax这种,并不是在主线程上直接执行的,异步出现的原因就是为了让主线程永不堵塞。

微任务: 仅次于主线程,可用Promise.resolve()then(fn()){ }直接将任务变成微任务
交互任务: 就是和用户的交互,如按钮的触发。
延时任务: 如计时器完成后的任务。
优先级: 渲染主线程 > 微任务 > 交互任务 > 延时任务等

总结:
JS的运行机制就是事件循环
单线程是异步产生的原因
事件循环是异步的实现方式