前言
本系列主要整理前端面试中需要掌握的知识点。本节介绍事件循环是什么,宏任务与微任务,async和await以及流程分析。
一、事件循环是什么
- JS是一门单线程的语言,意味着同一时间只能做一件事,而JS实现单线程非阻塞的方法就是事件循环。
- 在JS中,所有的任务都可以分为:
- 同步任务:立即执行的任务,同步任务一般会直接进入到主线程中执行;
- 异步任务:异步执行的任务,比如ajax网络请求,setTimeout定时函数等。
同步任务进入主线程,即主执行栈,异步任务进入任务队列,主线程内的任务执行完毕为空,会去任务队列读取对应的任务,推入主线程执行。上述过程的不断重复就事件循环
二、宏任务与微任务
console.log(1);
setTimeout(()=>{
console.log(2);
},0)
new Promise((resolve,reject)=>{
console.log('new Promise');
resolve();
}).then(()=>{
console.