JavaScript事件循环机制----event loop
为了解决js的这个问题,js出现了同步和异步
二者的本质区别:各个流程的执行顺序不同
JS的执行顺序
1.首先按照从上到下的顺序去执行同步任务
2.将异步任务放于任务队列中去
3.等待所有同步任务执行完毕后再去执行异步任务
执行过程如下图所示
由于js只能处理单线程问题,所以图片右侧处理异步任务的环节交由浏览器进行处理,浏览器将异步任务处理完成之后放到任务队列里等待js执行
如上图所示,代码的输出结果为 1234 或者 1243
由于addEventListener方法为点击事件,我们无法判断是点击事件先执行完毕还是延时函数先执行完毕,若点击事件在3s内执行,则输出结果为1243,若3s后再执行点击事件,则输出结果为1234