主题
从 0 到 1 学习前端
本仓库目标:以"零基础小白"为起点,构建一份系统、可上手、贴近真实工作与面试的前端学习笔记。
一、项目目标
- 系统性:覆盖前端从语言基础 → 框架 → 工程化 → 性能与部署的完整链路,章节之间有清晰的依赖与递进关系。
- 可落地:每个章节不仅讲"是什么",更要讲"为什么"和"怎么用",配套可运行的代码与可打开的 HTML 演示。
- 面试导向:每个章节末尾沉淀真实面试高频题,覆盖原理、八股、场景题、手写题。
- 零基础友好:用生活类比解释抽象概念(参考
qa/0.md中的"乐高/宜家""客厅/厨房"等类比风格)。
二、读者画像
- 完全零基础:从未写过代码,需要从 HTML 标签、变量是什么开始讲。
- 后端转前端:有编程基础,但不熟悉浏览器、DOM、组件化思维。
- 面试求职者:需要快速梳理知识盲区,强化原理和手写题。
写作时默认面向"零基础",对进阶内容用
> 进阶补充:...的方式追加,避免劝退新手。
三、每章交付物(强约束)
每个章节都必须包含以下 4 类内容,缺一不可:
| 类型 | 文件/形式 | 作用 |
|---|---|---|
| 📖 学习文档 | README.md | 概念讲解 + 生活类比 + 关键原理图 |
| 💻 实战案例 | examples/*.{js,ts,jsx,vue} | 可独立运行的最小代码片段 |
| 🌐 HTML 演示页 | demo/index.html | 浏览器中可直接打开、可交互的演示 |
| 🎯 面试题集 | qa.md | 高频面试题 + 标准答案 + 加分回答 |
章节目录结构示例
chapters/
└── 02-css-basics/
├── README.md # 学习文档
├── qa.md # 面试题集
├── examples/ # 代码案例
│ ├── flexbox.html
│ └── grid.html
└── demo/ # 综合演示页
└── index.html四、内容写作风格规范
- 先类比,后定义:每个新概念先给一个生活类比(厨房、餐厅、乐高、宜家……),再给技术定义。
- 代码最小化:示例代码聚焦单一知识点,避免无关复杂度。能用 10 行说清,就不写 50 行。
- 图示优先:流程、关系、结构优先用 ASCII 图或 mermaid 图表达,而不是大段文字。
- 对比成表:相似技术(如 React vs Vue、npm vs pnpm)一律用表格对比,维度统一。
- 常见误区:每章设置
⚠️ 易踩的坑小节,列出新手常犯错误。 - 一句话总结:每章结尾用一句话概括"这章到底讲了什么"。
五、章节规划(学习路线图)
按照"由静到动、由浅入深、由单点到工程"的顺序组织。
第一阶段:网页三剑客(从 0 到看见页面)
| # | 章节 | 核心内容 |
|---|---|---|
| 01 | HTML 基础 | 标签语义化、文档结构、表单、多媒体、SEO 基础 |
| 02 | CSS 基础 | 选择器、盒模型、定位、Flex、Grid、响应式、动画 |
| 03 | JavaScript 入门 | 变量、类型、运算符、流程控制、函数、作用域 |
第二阶段:JavaScript 进阶(从能写到写得好)
| # | 章节 | 核心内容 |
|---|---|---|
| 04 | JS 核心机制 | 原型链、this、闭包、作用域链、执行上下文 |
| 05 | 异步编程 | 回调、Promise、async/await、事件循环、宏任务/微任务 |
| 06 | ES6+ 新特性 | 解构、模板字符串、模块化、Class、Symbol、迭代器 |
| 07 | DOM 与 BOM | 节点操作、事件机制、事件委托、BOM API |
| 08 | 网络与存储 | Fetch、XHR、Cookie、LocalStorage、IndexedDB、CORS |
第三阶段:TypeScript(给 JS 加护栏)
| # | 章节 | 核心内容 |
|---|---|---|
| 09 | TS 基础类型 | 基本类型、接口、类型别名、联合/交叉类型 |
| 10 | TS 高级类型 | 泛型、条件类型、映射类型、工具类型、类型体操入门 |
第四阶段:现代前端框架(选一个深入)
| # | 章节 | 核心内容 |
|---|---|---|
| 11 | React 入门 | JSX、组件、Props、State、生命周期、Hooks 基础 |
| 12 | React 进阶 | 自定义 Hooks、Context、性能优化、虚拟 DOM、Fiber |
| 13 | Vue 入门(可选并行) | 模板语法、响应式、组件、Composition API |
| 14 | 状态管理 | Redux/Zustand、Pinia、何时该用全局状态 |
| 15 | 路由 | React Router / Vue Router 原理与实战 |
第五阶段:工程化与构建
| # | 章节 | 核心内容 |
|---|---|---|
| 16 | 包管理与模块化 | npm/pnpm、CommonJS vs ESM、Monorepo |
| 17 | 构建工具 | Vite 原理、Webpack 基础、Rollup、esbuild |
| 18 | 代码质量 | ESLint、Prettier、Husky、Git 工作流 |
| 19 | 测试 | Vitest/Jest 单元测试、Playwright E2E |
第六阶段:全栈与元框架
| # | 章节 | 核心内容 |
|---|---|---|
| 20 | Next.js / Nuxt 入门 | SSR/SSG/ISR、文件路由、API Routes、RSC |
| 21 | Node.js 基础 | 模块、文件系统、HTTP 服务、Express/Koa |
第七阶段:性能与部署
| # | 章节 | 核心内容 |
|---|---|---|
| 22 | 性能优化 | 加载性能、渲染性能、Core Web Vitals、Lighthouse |
| 23 | 浏览器原理 | 渲染流水线、回流重绘、合成层、事件循环 |
| 24 | 网络与安全 | HTTP/HTTPS、HTTP/2、XSS、CSRF、CSP |
| 25 | 部署与运维 | Vercel、Nginx、CDN、Docker 基础 |
附录
| # | 章节 | 核心内容 |
|---|---|---|
| A1 | 前端技术全景图 | 已存放于 qa/0.md,作为"开篇导览" |
| A2 | 手写题合集 | 防抖、节流、深拷贝、Promise、bind、new …… |
| A3 | 场景设计题 | 大文件上传、无限滚动、权限系统、SSO 登录 |
六、面试题集规范(qa.md 模板)
每道题按以下结构组织,避免只有"问题 + 答案"的简陋形式:
markdown
### Q1:什么是闭包?
**考察点**:作用域、内存管理、JS 核心机制
**标准答案**(适合背诵):
闭包是指一个函数能够访问其词法作用域之外的变量……
**通俗理解**(生活类比):
闭包就像一个"自带小书包"的函数,函数走到哪里,
都能从书包里拿出当初创建它的环境里的东西……
**代码示例**:
\`\`\`js
function makeCounter() {
let count = 0;
return () => ++count;
}
\`\`\`
**加分回答**(拉开差距):
- 闭包导致内存泄漏的场景
- 闭包在 React Hooks 中的应用(陈旧闭包问题)
**追问**:
- 如何手动释放闭包占用的内存?
- 循环中使用 var 配合 setTimeout 为什么打印同一个值?七、写作与提交流程
- 新增章节:在
chapters/下新建目录,命名格式编号-英文短名/,如04-js-core/。 - 章节模板:从
templates/chapter-template/复制基础结构(待创建)。 - HTML 演示页要求:
- 单文件(HTML + 内联 CSS/JS),双击即可打开。
- 顶部用注释说明本 Demo 演示的知识点。
- 关键交互按钮要有清晰文案,方便对照学习。
- 提交规范:建议遵循
feat(ch04): 完成 JS 核心机制章节这类 conventional commits 风格。
八、推进节奏建议
| 周次 | 学习目标 |
|---|---|
| 第 1 周 | 第一阶段(HTML / CSS / JS 入门) |
| 第 2-3 周 | 第二阶段(JS 进阶) |
| 第 4 周 | 第三阶段(TypeScript) |
| 第 5-6 周 | 第四阶段(选 React 或 Vue 深入) |
| 第 7 周 | 第五阶段(工程化) |
| 第 8 周 | 第六阶段(元框架 + Node 基础) |
| 第 9 周 | 第七阶段(性能/浏览器/安全/部署) |
| 第 10 周 | 通刷面试题 + 手写题 + 场景题 |
节奏可按个人情况调整,但建议不要跳过第一阶段和第二阶段,地基稳了后面才不返工。
九、当前进度
- [x]
qa/0.md前端技术全景导览 - [x] 第一阶段:HTML / CSS / JS 入门(3 章)
- [x] 第二阶段:JS 进阶(5 章)
- [x] 第三阶段:TypeScript(2 章)
- [x] 第四阶段:React / Vue / 状态 / 路由(5 章)
- [x] 第五阶段:工程化(4 章)
- [x] 第六阶段:元框架与 Node(2 章)
- [x] 第七阶段:性能 / 浏览器 / 安全 / 部署(4 章)
- [x] 附录 A1:手写题 30 道
- [x] 附录 A2:场景设计题 15 道
全部 25 主章 + 2 附录已完成首版,每章均已交付 README + qa + examples + demo 四类产物,详见 README.md。
十、一句话愿景
让任何一个零基础的人,跟着这份笔记走完一遍,就能写出像样的前端项目,也能从容应对中级前端面试。