同步:js代码逻辑从上往下一次执行,等上一个方法执行完执行下一个;
异步:异步函数返回结果的时候可能需要一定方法才能返回,会有等待时间才能得到结果,但是在等待时不会阻塞代码进行,会正常进行下面的代码逻辑。
同步和异步区别:
1.同步会依次执行,不会越界,异步不会阻塞代码进行
2.同步函数将会进入主线程,而异步则会先进入信息队列,等同步此次进行完,才会将异步依次进入主线程中执行。
事件循环:
1、代码应从上到下依次执行,执行代码块,函数入栈,遇到同步就进入主线程执行但是遇到异步放进任务队列中暂不执行
2、异步中又分为微任务和宏任务,微任务的执行顺序优先于宏任务
3、当主线程为空的时候,就从任务队列中去找有没有执行完的异步操作
不断循环以上的操作,知道队列为空
宏任务:I/0、定时器、ajax等
微任务:promise的.then、.catch和nextTick(注意:promise里面属于同步任务)
执行顺序:
同步>微任务>宏任务
小李子,希望你能理解~~