# JS-ADV-CourseCode **Repository Path**: leeworks/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**: 2 - **Forks**: 6 - **Created**: 2026-03-13 - **Last Updated**: 2026-03-29 ## 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 风格 ### [Chapter 4] 模块化 (Module) 本章深入探讨 JavaScript 的模块化机制,从早期的全局作用域痛点到现代的 ES6 模块系统。 #### 1. 基础语法与核心机制 - **基本导出与导入**: - `01-basic-export-import/`: 演示 `export` 关键字的基本用法,以及 `import` 导入只读引用的特性。 - **命名管理**: - `02-rename-and-namespace/`: 解决命名冲突的重命名技巧 (`as`),以及使用 `* as` 进行命名空间导入。 #### 2. 高级导出模式 - **默认导出与混合使用**: - `03-default-export/`: 掌握 `export default` 的使用场景,以及如何在一个模块中同时使用默认导出和命名导出。 #### 3. 浏览器与副作用 - **浏览器中的模块**: - `04-browser-module/`: 演示如何在 HTML 中通过 `