为什么要自己造轮子,而不是只调别人写好的库?

做前端开发的人,大概率都经历过这种尴尬:项目里到处是 if/else 的边界判断,日期格式化、防抖节流、深拷贝、参数序列化……每个页面都要重写一遍。外包换个人接手,或者三个月后再看自己写的代码,都会怀疑人生。

这门课不教你怎么安装 lodash,它教你的是——如何把那些「看起来很简单但写起来总出错」的小逻辑,沉淀成你自己能复用的工具函数库。适合什么基础?会基本的 JavaScript 语法,写过若干个项目,但对「代码的组织方式」还没有系统认识的人最合适。如果你还分不清 Array.prototype.map 和 for...of 的本质区别,建议先补完基础再来看。

这门课解决什么具体问题?

核心问题就一个:怎么把散落在项目里的零散逻辑,变成稳定、可测试、可版本管理的独立模块。

具体来说,课程覆盖以下几类高频场景:字符串与数组的清洗操作(去重、扁平化、分区)、日期格式的统一处理、各类防抖与节流的实现差异、参数序列化与解析(尤其是 URL query 与 FormData 的边界)、深拷贝的陷阱与实现、跨域请求前拦截器的编写、以及错误日志的分级上报。这些内容单独拿出来哪一条都不难,但凑在一起就是很多前端工程师的「隐形技能盲区」。

课程还涉及工具库的工程化配套:单元测试怎么写、TypeScript 类型推导怎么加、如何发布到私有 npm 源、以及如何在不引入臃肿依赖的前提下让函数库跑在浏览器和 Node 两端。

建议先看哪几块?学完能做什么?

如果你是第一次接触这个主题,建议按这个顺序开刀:先做字符串/数组清洗 → 再做日期处理 → 然后上防抖节流 → 最后才是工程化发布。前三块是地基,没有它们后面谈「工具库」就是空中楼阁。

学完之后,你应该能做到这几件事:一是能独立设计一个工具函数库的目录结构,知道什么时候该暴露模块、什么时候该统一出口;二是能给常用函数写好类型签名和基础测试用例,而不是拍脑袋写一段跑通了就算完事;三是能把这个库接入实际项目,让它真正替代你代码库里反复粘贴的那几段「通用逻辑」。

资料包的练习方式很直接:每个章节都有对应的代码片段要你补全和重构,建议用 Git 分支记录每次迭代,这样你能清楚地看到同一个函数从「能跑」到「稳定」的演进过程。别急着一口气刷完,挑三五个高频场景练熟,比泛泛过一遍有价值得多。

课程目录

整理中,敬请期待。