# JS-ADV-CourseCode **Repository Path**: lyll7/js-adv-course-code ## Basic Information - **Project Name**: JS-ADV-CourseCode - **Description**: No description available - **Primary Language**: JavaScript - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2026-03-15 - **Last Updated**: 2026-03-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 《JavaScript高级编程》课程代码仓库 欢迎来到 **JavaScript 高级编程** 代码仓库!本仓库致力于为学员提供高质量的教学示例与实战案例,帮助大家深入理解 JavaScript 的核心机制与高级特性。 ## 📂 目录结构与内容 代码按章节组织,方便检索与学习。 ### [Chapter 3] 异步编程与事件循环 本章重点讲解 JavaScript 的单线程模型、非阻塞 I/O 以及异步编程的演进方案。 #### 1. 核心概念与机制 - **阻塞与非阻塞**: - `01-blocking.html`: 直观演示同步代码如何阻塞 UI 渲染。 - `02-async-callback.js`: 理解异步回调的基本工作方式。 - **事件循环 (Event Loop)**: - `04-event-loop.js`: 宏任务(MacroTask)与微任务(MicroTask)的执行顺序。 - `05-event-loop-viz.html`: 事件循环的可视化演示。 #### 2. 异步方案演进 - **从回调到 Promise**: - `03-callback-hell.js`: 经典的“回调地狱”问题示例。 - `06-async-pattern.js`: 异步模式的通用探讨。 - `09-promise-basic.js`: Promise 的基本用法与链式调用。 - `10-promise-all.js`: 使用 `Promise.all` 处理并发任务。 - **终极解决方案 Async/Await**: - `11-async-basic.js`: `async`/`await` 语法糖带来的同步写法体验。 - `12-async-parallel.js`: 如何在 `async`/`await` 中实现并行执行。 #### 3. 网络请求实战 - `07-xhr-demo.html`: 传统的 `XMLHttpRequest` 使用演示。 - `13-fetch-demo.html`: 现代 `Fetch API` 使用演示。 - `08-json-basics.js`: JSON 数据的解析与序列化。 #### 4. 综合案例 (Case Study) 位于 `chapter-3/case-study/` 目录下,通过同一个业务场景,横向对比四种不同时代的异步实现方式,深刻体会技术演进带来的便利: 1. `01-xhr-callback.js`: 回调函数风格 2. `02-xhr-promise.js`: Promise 封装风格 3. `03-fetch-api.js`: Fetch API 风格 4. `04-async-await.js`: Async/Await 风格 ## 🚀 如何使用 1. **克隆仓库** ```bash git clone git@gitee.com:leeworks/js-adv-course-code.git ``` 2. **运行代码** - **Node.js 环境**:对于 `.js` 后缀的文件,建议使用 Node.js 直接运行。 ```bash # 示例 node chapter-3/04-event-loop.js ``` - **浏览器环境**:对于 `.html` 后缀的文件,请直接在浏览器中打开,并打开开发者工具 (F12) 查看控制台 (Console) 输出。 ## ⚠️ 注意事项 - 请确保你的 Node.js 版本在 **v14+** 以上,以支持最新的语法特性。 - 建议跟随课程视频或文档,按顺序阅读和运行代码。 --- Happy Coding! 祝学习愉快!