一、同步
同步任务都在主线程上执行,形成一个执行栈
二、异步
JS的异步是通过回调函数实现的,一般而言,异步任务有三种类型
(1)普通事件,如click、resize
(2)资源加载,如load、error
(3)定时器,包括setInterval、setTimeout等
异步任务相关添加到任务队列中
三、JS的执行机制
1、先执行栈中的同步任务
2、异步任务放入任务队列中
扫描二维码关注公众号,回复:
15278304 查看本文章
3、一旦执行栈中的所有同步任务执行完毕,系统就会按次序读取任务队列中的异步任务,于是被读取的异步任务结束等待状态,进入执行栈,开始执行。
例如
console.log(1)
setTimeout(function(){
console.log(2)
},0)
console.log(3)
输出结果
因为2为异步任务,会先执行同步任务