js在浏览器中执行过程
同步-异步
同步:会逐行执行代码,前面代码执行完毕后再执行后面的代码,因此会对后续代码造成阻塞(js的单线程跟同步差不多)。
异步:调用之后先不管结果,先放入文物队列,然后再继续向下执行任务。(将任务添加到任务队列,进行等待,等执行栈清空后再执行任务队列内的任务)
异步任务分为宏任务和微任务,微任务优先于宏任务
主任务(执行栈)——微任务——宏任务
浏览器是js的宿主环境之一,但浏览器是多线程的
- GUI渲染线程
- JS引擎线程
- 事件触发线程
- 定时触发器线程
- 异步http请求线程