1.消息队列:一种数据结构,可以存放要执行的任务,符合队列先进先出的特点
    2线程模型:

    • 添加一个消息队列
    • io线程中产生新任务添加进入消息队列尾部
    • 渲染主线程会循环的从消息队列中读取任务,执行任务
    • 查看performance

    3.setTimeout方法

    • js调用settimeout设置回调函数的时候渲染进程会创建一个回调任务,包含回调函数发起时间,延迟执行时间
    • 创建好回调任务之后再将该任务添加到延迟队列
    • 每个定时器会返回一个定时器的 ID,标识这个定时器
    • 定时器存在嵌套,系统会设置最短时间间隔为4毫秒
    • 未激活的页面定时器最小间隔是1000毫秒
    • 延时执行时间有最大值
    • 定时器中的this必须显示的指定否则就指向window

    4.同步回调:回调函数是在主函数返回之前执行
    5.异步回调:回调函数在主函数外执行的过程
    6.宏任务
    image.png
    7.微任务需要异步执行的函数,执行时机是在主函数执行结束之后,当前宏任务结束之前