B00 JavaScript 进阶

2026-10-31 17:200 阅读约 6 分钟JavaScript

B00 JavaScript 进阶

本阶段目标:从「能跑」走到「能解释」——变量为什么在某个位置取不到、this 为什么指向别处、异步为什么没有按顺序执行。

所属:frontend/js / B-进阶 | 上一篇:A09-实战待办清单 | 下一篇:B01-作用域与闭包 | 返回:科目 README

路线图

九篇沿「变量在哪 → 调用者是谁 → 异步怎么排队 → 任务怎么调度 → 代码怎么拆 → 出错怎么查 → 集合怎么选 → 模式怎么匹配 → 事件怎么传播」推进。

flowchart TD
    B1["B01 作用域与闭包"] --> B2["B02 this 与原型链"]
    B2 --> B3["B03 Promise 与 async 异步"]
    B3 --> B4["B04 事件循环与任务队列"]
    B4 --> B5["B05 模块化与 ESM"]
    B5 --> B6["B06 错误处理与调试"]
    B6 --> B7["B07 Map 与 Set 集合类型"]
    B7 --> B8["B08 正则表达式"]
    B8 --> B9["B09 事件对象与自定义事件"]

    subgraph P1["语言机制(B01 ~ B02)"]
        B1
        B2
    end

    subgraph P2["异步与组织(B03 ~ B06)"]
        B3
        B4
        B5
        B6
    end

    subgraph P3["常用能力(B07 ~ B09)"]
        B7
        B8
        B9
    end

图 1 进阶阶段路线图:B01 ~ B02 解释取值与绑定规则,B03 ~ B06 解决异步、调度、拆分与排错,B07 ~ B09 补齐集合、模式匹配与事件机制

能力对照

能力 对应篇目 自检方式
判断变量在何处可见 B01 给定嵌套函数,能说出每个变量的查找路径
用闭包封装私有状态 B01 写出不依赖全局变量的计数器
把多参数函数改写为柯里化形式 B01 固定基础值后生成两个专用函数
解释 this 的实际指向 B02 写出四种调用形式下 this 分别是什么
把回调改写为 async/await B03 错误能被 try/catch 捕获,顺序符合预期
预测异步输出顺序 B04 给定 setTimeout 与 Promise 混排,能写出完整输出
拆分长任务并给出三种做法 B04 五千条数据处理期间页面仍可交互
把代码拆成可独立加载的模块 B05 拆分后循环依赖消除,单文件不超过 200 行
定位并归类运行时错误 B06 从堆栈第一行定位到具体文件与行号
在 Map 与对象之间做出选择 B07 能说明键类型、顺序与弱引用三个判断点
为输入校验写出可推导的正则 B08 加首尾锚点、转义用户输入,无嵌套量词
用自定义事件解耦两个模块 B09 组件对外只发事件,不暴露内部方法

阅读顺序

顺序 篇目 建议时长 必读 说明
1 B01 作用域与闭包 60 分钟 是 取值规则是所有 bug 的底噪
2 B02 this 与原型链 60 分钟 是 对象方法的绑定规则
3 B03 Promise 与 async 异步 70 分钟 是 网络请求的唯一写法
4 B04 事件循环与任务队列 60 分钟 是 输出顺序与卡顿的解释
5 B05 模块化与 ESM 50 分钟 是 拆分代码与消除循环依赖
6 B06 错误处理与调试 50 分钟 是 交付前的最后一道关
7 B07 Map 与 Set 集合类型 50 分钟 是 字典、去重与弱引用
8 B08 正则表达式 60 分钟 是 校验、提取与替换
9 B09 事件对象与自定义事件 50 分钟 是 传播模型与组件通信

跳过建议

  • 只写页面脚本、不写库:B02 可只读 3.1 节与 3.3 节。
  • 已有模块化经验:B05 可只读 3.3 节的循环依赖部分。
  • 不用正则做校验:B08 可只读 3.1 节与表 3-1,但表 5-1 必读。

阶段出口

返回文章列表

评论 0

0/2000

还没有评论,快来抢沙发吧~