1、
2、所有代码分类
① 初始化执行代码(同步代码):包含绑定 dom 事件监听,设置定时器,发送 ajax 请求的代码
② 回调执行代码(异步代码):处理回调逻辑
3、js 引擎执行代码的基本流程:
初始化代码 ==> 回调代码
4、模型的2个重要组成部分:
① 事件(定时器/DOM事件/Ajax)管理模块
② 回调队列
5、模型的运转流程
① 执行初始化代码,将事件回调函数交给对应模块管理
② 当事件发生时,管理模块会将回调函数及其数据添加到回调列队中
③ 只有当初始化代码执行完后(可能需要一定时间),才会遍历读取回调队列中的回调函数执行
6、相关重要概念
① 执行栈(execution stack):所有的代码都是在此空间执行的
② 浏览器内核(browser core):js 引擎模块(在主线程处理)、其他模块(在主/分线程处理)
③ 任务队列(task queue)
④ 消息队列(message queue)
⑤ 事件队列(event queue)
⑥ 事件轮询(event loop):从任务队列中循环取出回调函数放入执行栈中处理(一个接一个)
⑦ 事件驱动模型(event-driven interaction model)
⑧ 请求响应模型(request-response model)
本文分享到这里,欢迎大家评论区共同讨论学习,下一篇继续分享JavaScript高级学习中的H5 Web Workers 多线程的内容。