Skip to content

5 年前端工程师技能图谱

作为一名 5 年经验的前端工程师,正在向全栈方向发展。本文档梳理了应当掌握的核心技能及其深度要求。

🟢 已掌握 · 🟡 需加强 · 🔴 待学习 (按自身情况标注)


一、JavaScript / TypeScript

掌握程度:精通

这是安身立命之本,5 年经验应该做到源码级理解,而不只是会用。

技能点要求程度说明文档
ES6+ 全部特性精通解构、展开、Promise、async/await、Proxy、Reflect、Symbol、Iterator、Generator 等详细文档
原型链与继承精通能手写实现 newinstanceofObject.create,理解原型链查找机制详细文档
闭包与作用域精通理解词法作用域、执行上下文栈、变量提升、暂时性死区详细文档
事件循环精通宏任务/微任务的执行顺序,requestAnimationFramerequestIdleCallback 的时机详细文档
Promise 原理精通能手写 Promise A+ 规范实现,理解微任务队列详细文档
TypeScript精通泛型、条件类型、映射类型、模板字面量类型、infer 推断、类型体操详细文档
模块化熟练ESM vs CommonJS 的差异,循环引用处理,Tree Shaking 原理详细文档
函数式编程熟练纯函数、柯里化、组合、Monad 基本概念详细文档
设计模式熟练观察者、发布订阅、策略、工厂、单例、代理等常用模式详细文档

自检问题

  • 能否手写一个完整的 Promise.all / Promise.race
  • 给一段包含 setTimeout + Promise + async/await 的代码,能否准确说出执行顺序?
  • 能否用 TypeScript 实现一个类型安全的 EventEmitter

二、CSS / 布局

掌握程度:熟练

CSS 不只是"能写出来",而是要知道为什么这样写

技能点要求程度说明文档
Flex 布局精通各种对齐方式、flex-grow/shrink/basis 的计算逻辑详细文档
Grid 布局熟练grid-templategrid-area、响应式栅格详细文档
BFC / 层叠上下文精通理解 BFC 触发条件、清除浮动原理、z-index 层叠规则详细文档
响应式设计熟练媒体查询、容器查询、clamp()、移动端适配方案(rem/vw)详细文档
CSS 动画熟练transitionanimationtransform、GPU 加速、will-change详细文档
CSS 预处理器熟练Sass/Less 变量、mixin、函数、模块化详细文档
CSS-in-JS了解styled-components、Emotion、Tailwind CSS 的优劣对比详细文档
CSS 新特性了解@layer@containercolor-mix()has()、Subgrid详细文档

自检问题

  • 如何实现一个不定宽高元素的水平垂直居中(至少 3 种方式)?
  • 为什么 transform 动画比 left/top 动画性能好?
  • 什么是 BFC?如何触发?解决了什么问题?

三、框架(React / Vue)

掌握程度:至少精通一个,另一个熟练

5 年经验,不能只会"用"框架,要理解框架为什么这样设计

React

技能点要求程度说明文档
Hooks 全家桶精通useStateuseEffectuseRefuseMemouseCallback、自定义 Hookmini-react 源码
组件设计模式精通高阶组件、Render Props、Compound Components、受控/非受控mini-react 源码
状态管理熟练Context、Redux/Zustand/Jotai,理解各方案的适用场景mini-react 源码
React 原理熟练 → 精通Fiber 架构、Reconciliation、合成事件、批量更新、并发模式mini-react 源码
React Router熟练v6 API、嵌套路由、路由守卫、懒加载
Next.js / SSR熟练SSR/SSG/ISR 的区别、App Router、Server Components
性能优化熟练React.memo、虚拟列表、代码分割、Suspense、Profilermini-react 源码

Vue

技能点要求程度说明文档
Vue3 Composition API熟练refreactivecomputedwatchwatchEffectmini-vue 源码
响应式原理熟练Proxy 实现、依赖收集与触发、effect 函数mini-vue 源码
Vue Router / Pinia熟练路由导航守卫、状态持久化
Vue3 源码了解 → 熟练编译器、渲染器、响应式系统的核心逻辑mini-vue 源码

自检问题

  • useEffect 的依赖数组为什么不能放在条件语句里?
  • React 的 Fiber 架构解决了什么问题?
  • Vue 的 refreactive 底层有什么区别?

四、工程化

掌握程度:熟练

工程化能力是区分"初级"和"高级"的重要指标。

技能点要求程度说明文档
Vite精通原理(ESM 开发 + Rollup 生产)、插件开发、配置优化详细文档
Webpack熟练Loader/Plugin 机制、HMR 原理、SplitChunks、Tree Shaking详细文档
Babel / SWC熟练AST 转换流程、自定义插件、preset 配置详细文档
ESLint / Prettier熟练自定义规则、配置共享、与 CI 集成详细文档
Monorepo熟练pnpm workspace、Turborepo/Nx、包版本管理详细文档
CI/CD熟练GitHub Actions、自动化测试/构建/部署流水线详细文档
包管理熟练npm/pnpm/yarn 的区别、peerDependencies、lock 文件原理详细文档
发包了解npm 发包流程、Changesets、语义化版本详细文档

自检问题

  • Vite 为什么比 Webpack 快?生产环境为什么用 Rollup?
  • 如何编写一个 Babel 插件,自动移除 console.log
  • Monorepo 中 packages 之间如何相互引用?

五、浏览器与网络

掌握程度:熟练

前端归根到底是跟浏览器打交道。

技能点要求程度说明文档
浏览器渲染流程精通DOM → CSSOM → Render Tree → Layout → Paint → Composite详细文档
HTTP/HTTPS熟练状态码、缓存策略(强缓存/协商缓存)、CORS、Cookie/Session详细文档
HTTP/2 & HTTP/3了解多路复用、头部压缩、QUIC 协议详细文档
性能优化精通Core Web Vitals (LCP/FID/CLS)、性能指标采集、优化手段详细文档
安全熟练XSS、CSRF、CSP、HTTPS 原理、同源策略详细文档
存储熟练Cookie / localStorage / sessionStorage / IndexedDB 的区别与适用场景详细文档
Service Worker了解PWA、离线缓存、消息推送详细文档
WebSocket熟练与 HTTP 的区别、心跳机制、断线重连详细文档

自检问题

  • 从输入 URL 到页面显示,经历了哪些步骤?(尽量详细)
  • ETagLast-Modified 有什么区别?
  • 如何防御 XSS 攻击?CSP 是什么?

六、前端进阶领域

掌握程度:了解 → 熟练

这些是现代前端工程师的能力延伸方向,根据团队和业务需要有选择地深入。

微前端

技能点要求程度说明文档
微前端概念与架构熟练理解微前端的核心思想:独立开发、独立部署、技术栈无关详细文档
qiankun熟练基于 single-spa 的微前端方案,沙箱机制、样式隔离、应用通信详细文档
Module Federation熟练Webpack 5 / Vite 的模块联邦,运行时共享依赖、远程模块加载详细文档
无界 / micro-app了解基于 WebComponent / iframe 的新一代微前端方案详细文档
JS 沙箱熟练Proxy 沙箱、快照沙箱的实现原理与区别详细文档
样式隔离熟练Shadow DOM、CSS Scoping、动态样式表切换详细文档

跨端开发

技能点要求程度说明文档
React Native了解Bridge 架构 → 新架构(Fabric + TurboModules)、原生模块交互详细文档
Flutter了解Dart 语言基础、Widget 体系、与原生通信(Platform Channel)详细文档
Taro / uni-app了解编译时 vs 运行时跨端方案的差异,小程序开发详细文档
Electron / Tauri了解桌面端跨平台方案,主进程/渲染进程架构,Tauri 的 Rust 优势详细文档

Web 性能监控 & 可观测性

技能点要求程度说明文档
性能指标采集熟练Performance API、PerformanceObserver、LCP/FCP/TTFB/CLS 采集详细文档
错误监控熟练window.onerrorunhandledrejection、Source Map 还原、Sentry 集成详细文档
自研监控 SDK了解 → 熟练数据采集、上报策略(批量/采样/节流)、beacon API详细文档
用户行为追踪了解PV/UV、点击热力图、用户路径分析、埋点方案(声明式/指令式)详细文档
日志平台了解ELK / Grafana / 自研日志平台的基本概念详细文档

WebAssembly

技能点要求程度说明文档
Wasm 基本概念了解二进制指令格式、与 JS 的互操作、适用场景(计算密集型任务)详细文档
编译工具链了解Emscripten(C/C++ → Wasm)、wasm-pack(Rust → Wasm)详细文档
实际应用场景了解图片/视频处理(FFmpeg.wasm)、PDF 渲染、加密算法、游戏引擎详细文档
WASI了解WebAssembly System Interface,Wasm 脱离浏览器运行的标准详细文档

自检问题

  • 微前端的 JS 沙箱有哪几种实现方式?各自的优缺点?
  • Module Federation 和 qiankun 的本质区别是什么?
  • 如何从 0 到 1 搭建一个前端性能监控平台?需要采集哪些指标?
  • WebAssembly 相比 JavaScript 在什么场景下有明显优势?

AI & Agent

🔥 2024-2025 年最重要的前端新方向。前端是 AI 能力触达用户的最后一环,掌握 Agent 开发能力是差异化竞争力的关键。

热门概念

概念说明
LLM(大语言模型)Token、Temperature、Top-P、上下文窗口(Context Window)、幻觉(Hallucination)
Agentic AI具备自主决策、工具调用、多步推理能力的 AI 系统,区别于简单的 Chat Completion
RAG(检索增强生成)将外部知识注入 LLM 的技术路线:文档分块 → 向量化 → 检索 → 注入上下文 → 生成
Function Calling / Tool UseLLM 通过结构化输出调用外部函数/API,是 Agent 行动的基础能力
Structured Output约束 LLM 输出为 JSON Schema、Zod Schema 等结构化格式,提升可靠性
Streaming / SSE流式响应,前端逐 Token 渲染,提升用户体验的核心技术
Embedding & 向量数据库文本向量化、语义检索,常用 Pinecone / Milvus / pgvector
Multimodal多模态输入输出:文本、图片、音频、视频的理解与生成
Inference-time Compute推理时计算,如 CoT(Chain of Thought)、o1/o3 系列模型的"深度思考"能力
Agent Skills模块化的 Agent 能力包(SKILL.md),将领域知识/工作流打包为可复用技能,Agent 按上下文自动加载
Agentic CodingAI 驱动的编码范式,Cursor / Claude Code / Copilot / Windsurf 等工具的核心工作模式

Prompt 工程

技能点要求程度说明文档
Prompt 基础技巧熟练角色设定、任务描述、输出格式约束、少样本提示(Few-shot)详细文档
高级 Prompt 策略熟练思维链(CoT)、思维树(ToT)、自洽性(Self-Consistency)、ReAct 提示详细文档
System Prompt 设计熟练系统指令分区(instructions / constraints / examples)、防注入策略详细文档
Prompt 模板工程了解变量插值、条件分支、Prompt 版本管理与 A/B 测试详细文档

上下文工程(Context Engineering)

技能点要求程度说明文档
上下文工程 vs Prompt 工程熟练Prompt 工程关注"措辞",上下文工程关注"信息架构"——管理 LLM 看到的一切信息详细文档
上下文窗口管理熟练Token 预算分配、对话历史压缩/摘要、滑动窗口策略详细文档
动态上下文组装熟练根据用户意图动态检索、拼装系统指令 + 工具定义 + 历史 + 外部知识详细文档
记忆系统了解 → 熟练短期记忆(对话历史)、长期记忆(用户偏好/知识库)、工作记忆(Scratchpad)详细文档
上下文裁剪策略了解骨架裁剪(Skeleton Trimming)、相关性优先选择、分阶段上下文注入详细文档
防止上下文腐化了解Context Rot 问题,动态信息应检索而非硬编码,保持上下文新鲜度详细文档

Agent 设计模式

技能点要求程度说明文档
ReAct 模式熟练Reasoning + Acting,最主流的 Agent 架构:思考 → 调用工具 → 观察 → 继续推理详细文档
Plan-and-Execute了解先规划任务列表,再逐步执行,适合复杂多步任务详细文档
反思模式(Reflection)了解Agent 自我评估输出质量,循环改进直到满足标准详细文档
多 Agent 协作了解多个专业 Agent 分工协作(Handoff / Orchestrator / Supervisor 模式)详细文档
工具设计原则熟练工具描述清晰、参数无歧义、错误信息友好、工具集精简(避免选择困难)详细文档
人机协作(Human-in-the-Loop)了解Agent 在关键节点请求人类确认/审批,平衡自动化与可控性详细文档

协议与标准

技能点要求程度说明文档
MCP(Model Context Protocol)熟练Anthropic 提出的开放标准,统一 Agent 与工具/数据源的连接方式("AI 的 USB-C")详细文档
A2A(Agent-to-Agent)了解Google 推出的 Agent 间通信协议,跨平台 Agent 协作、任务委托详细文档
OpenAI Function Calling熟练结构化工具调用规范,定义函数 name/description/parameters详细文档
MCP Server 开发了解 → 熟练用 TypeScript 实现 MCP Server,暴露工具/资源给 Agent 使用详细文档
Agent Skills 标准熟练Anthropic 推出的开放标准,SKILL.md 文件格式,通过 npx skills CLI 安装,跨工具复用详细文档
Skills 开发了解 → 熟练编写自定义 SKILL.md(元数据 + 指令 + 脚本),为团队/项目沉淀可复用的 Agent 能力包详细文档

AI SDK & 开发框架

技能点要求程度说明文档
Vercel AI SDK熟练统一的 LLM API 封装、useChat / useCompletion Hooks、流式 UI、工具调用详细文档
LangChain.js了解 → 熟练Chain 编排、Tool 注册、Memory 管理、与 RAG 流程集成详细文档
LangGraph了解基于图的 Agent 编排框架,支持循环、条件分支、状态机详细文档
OpenAI SDK熟练Chat Completions API、Assistants API、Function Calling、Streaming详细文档
Prompt 管理工具了解LangSmith / Promptfoo / Helicone,Prompt 版本管理、评测与可观测性详细文档

AI 交互与前端实现

技能点要求程度说明文档
流式渲染精通SSE / ReadableStream 处理、逐 Token 渲染、打字机效果、中断/取消详细文档
对话式 UI熟练消息列表、Markdown 渲染、代码高亮、思考过程折叠、工具调用状态展示详细文档
Generative UI了解 → 熟练Agent 根据推理结果动态生成 UI 组件(React Server Components + AI SDK)详细文档
乐观更新 & 状态管理熟练Agent 多轮对话状态、工具调用中间态、错误重试、消息持久化详细文档
AI 应用安全了解Prompt 注入防御、输出过滤、敏感信息脱敏、用量限制与鉴权详细文档

自检问题

  • Prompt 工程和上下文工程的核心区别是什么?在实际 Agent 开发中如何配合使用?
  • ReAct 模式的工作流程是什么?与 Plan-and-Execute 模式相比各有什么优劣?
  • MCP 协议解决了什么问题?如何用 TypeScript 实现一个 MCP Server?
  • 如何在前端实现一个支持流式渲染 + 工具调用状态展示的 Chat UI?
  • RAG 的完整流程是什么?前端在其中承担什么角色?
  • 什么是 Context Window 管理?当对话历史超出上下文窗口限制时如何处理?
  • Agent Skills 和 MCP 分别解决什么问题?Skills 与 Rules/Instructions 有什么区别?

七、Node.js / 后端基础

掌握程度:熟练(全栈方向必备)

技能点要求程度说明文档
Node.js 核心模块熟练fspathhttpstreamchild_process详细文档
Express / Koa / Nest.js熟练中间件机制、路由、错误处理、参数校验详细文档
数据库熟练MySQL/PostgreSQL 基础 SQL、MongoDB、ORM(Prisma/TypeORM)详细文档
RESTful API 设计熟练资源命名、HTTP 方法语义、分页/过滤/排序详细文档
认证鉴权熟练JWT、OAuth2.0、Session、RBAC 权限模型详细文档
数据库设计熟练表结构范式、索引原理与优化(B+树)、事务隔离级别、慢查询分析详细文档
Redis熟练缓存策略(穿透/击穿/雪崩)、Session 存储、分布式锁、常用数据结构详细文档
消息队列了解RabbitMQ / Kafka 基本概念,生产者-消费者模型、消息可靠性保证详细文档
微服务基础了解服务注册与发现、API Gateway、服务间通信(gRPC/HTTP)、熔断与限流详细文档
日志 & 监控了解Winston / Pino 日志库、日志分级、ELK 日志平台基础、健康检查详细文档
Docker了解Dockerfile 编写、docker-compose、容器部署基础、多阶段构建详细文档
Serverless了解Vercel Functions / AWS Lambda / Cloudflare Workers详细文档

自检问题

  • Koa 的洋葱模型是什么?与 Express 中间件有何不同?
  • JWT 和 Session 认证各自的优缺点?
  • 如何设计一个 RESTful API 的分页方案?
  • 数据库索引的底层数据结构是什么?为什么 MySQL 使用 B+ 树而不是 B 树?
  • Redis 缓存穿透、缓存击穿、缓存雪崩分别是什么?如何防御?
  • 消息队列如何保证消息不丢失?

八、测试

掌握程度:熟练

5 年经验的工程师,写测试应该是习惯,而非负担。

技能点要求程度说明文档
单元测试熟练Vitest / Jest,测试纯函数、Hooks、工具方法详细文档
组件测试熟练Testing Library、模拟事件、快照测试详细文档
E2E 测试了解Playwright / Cypress 基本使用详细文档
Mock熟练接口 Mock、模块 Mock、Timer Mock详细文档
TDD / BDD了解测试驱动开发的理念与实践详细文档

九、算法与数据结构

掌握程度:熟练

不需要刷到 LeetCode Hard,但中等难度应该能解。

技能点要求程度说明文档
数组 / 链表 / 栈 / 队列精通基本操作、常见题型详细文档
哈希表 / Set / Map精通两数之和类型题详细文档
二叉树熟练遍历(前/中/后/层序)、DFS/BFS详细文档
排序算法熟练快排、归并、堆排,时间复杂度分析详细文档
动态规划了解背包、最长子序列、爬楼梯等经典题型详细文档
手写题精通debouncethrottledeepCloneflatcurryEventEmitterPromise.all详细文档
前端场景算法熟练虚拟列表计算(可视区域索引)、DOM Diff 算法思路、LRU 缓存、大文件切片上传的分片策略、列表转树结构(list2tree)、权限路由过滤(递归树筛选)详细文档

自检问题

  • 如何实现一个 LRU 缓存?时间复杂度是多少?
  • 虚拟列表中如何计算当前可视区域应该渲染哪些元素?
  • 如何将扁平数组转换为树结构?反过来呢?
  • React/Vue 的 Diff 算法核心思路是什么?为什么需要 key?

十、软技能

掌握程度:这是高级工程师与资深工程师的分水岭

技能点要求程度说明文档
技术方案设计熟练需求分析 → 技术选型 → 架构设计 → 落地文档详细文档
Code Review熟练能给出建设性意见,关注可维护性和可读性详细文档
技术分享熟练定期输出,能讲清楚一个技术点的 what / why / how
项目管理了解任务拆解、排期、风险识别、跨团队协调
沟通能力熟练能与产品/设计/后端高效沟通,推动技术决策
技术文档熟练RFC、ADR、API 文档、技术博客详细文档

能力等级参考

等级含义面试表现
了解知道是什么,用过基本功能能说出概念和基本用法
熟练项目中频繁使用,能解决常见问题能深入讨论原理和最佳实践
精通读过源码,能从底层解释原理能手写实现、能做技术决策和架构设计

学习路线建议

作为一名正在转向全栈的 5 年前端,建议按以下优先级补强:

1. 🔥 夯实 JS/TS 基础(很多人 5 年了还有盲区)
2. 🔥 深入框架原理(这也是本项目 mini-react / mini-vue 的目标)
3. 🔥 Node.js + 数据库(全栈必备)
4. ⭐ 工程化能力提升(Monorepo、CI/CD、自定义插件)
5. ⭐ 算法刷题(保持手感,中等难度)
6. ⭐ 系统设计思维(技术方案、架构能力)

最后更新于:

用心学习,用代码说话 💻