1.消息队列:一种数据结构,可以存放要执行的任务,符合队列先进先出的特点
2线程模型:
- 添加一个消息队列
- io线程中产生新任务添加进入消息队列尾部
- 渲染主线程会循环的从消息队列中读取任务,执行任务
- 查看performance
3.setTimeout方法
- js调用settimeout设置回调函数的时候渲染进程会创建一个回调任务,包含回调函数发起时间,延迟执行时间
- 创建好回调任务之后再将该任务添加到延迟队列
- 每个定时器会返回一个定时器的 ID,标识这个定时器
- 定时器存在嵌套,系统会设置最短时间间隔为4毫秒
- 未激活的页面定时器最小间隔是1000毫秒
- 延时执行时间有最大值
- 定时器中的this必须显示的指定否则就指向window
4.同步回调:回调函数是在主函数返回之前执行
5.异步回调:回调函数在主函数外执行的过程
6.宏任务
7.微任务需要异步执行的函数,执行时机是在主函数执行结束之后,当前宏任务结束之前
