js语言一大特点是单线程,为了解决这个问题,js中出现了同步和异步。
本质区别是:这条流水线上各个流程的执行顺序不同。
一、同步任务
同步任务都在主线程上执行,形成一个执行栈。
二、异步任务:
JS的异步是通过回调函数实现的。
一般而言,异步任务有以下三种类型;
1、普通事件,如click、resize等
2、资源加载,如load、error等
3、定时器,包括setlnterval、setTimeout等
执行顺序:
先执行同步任务,再按次序读取异步任务。
异步任务如果是click,点击了,就进入异步进程处理,不点击就不进入。从异步任务进入同步任务执行,事件循环。
事件循环:由于主线程不断重复获得任务,执行任务,这种机制称为事件循环。