从 2016 年开始酝酿写它,到 2017 年正式发布,今年已经是《JavaScript 核心进阶》 与读者见面的第 7 个年头。
第一个版本
从刚开始写这本的时候,我就反复的在思考要从什么角度切入来写这本书。因为市面上已经有非常多比较经典的 JS 入门类书籍,例如红宝书
,你不知道的 JavaScript
等,他们广受欢迎,并且知识面也比较全面,如果要重新写,总要找到不一样的切入点。
思来想去,也跟同事和网友探讨,我发现许多前端朋友对于基础知识的掌握始是零散的,并且大多数朋友都觉得自己基础不够扎实,因此,在第一个版本里,我最终决定以帮助读者构建 JavaScript 知识体系为切入点来完成这本书。
我从探索 JavaScript 学习的核心脉络的角度出发,沿着内存 -> 数据类型 -> 数据结构 -> 堆/栈 -> 函数 -> 面向对象 -> 设计模式的学习路径,将涉及到的知识以知识体系的方式在书中呈现给大家
加上在刚写这本书的时候,ES6 还不如现在这样普及,因此我在书中额外加入了 ES6 的常用知识,能够帮助读者朋友快速学习并运用于实践。
由于写书的切入角度有了自己的独创性,从写的内容在简书和掘金发布,得到了大量的认可,也从读者朋友的反馈中感受到有许多小伙伴都得到了帮助。再到后面多次修订并发版出书。
但是毕竟在刚开始起笔写这本书时,我也才工作三年多一点,工作经验有限,因此第一版书中的内容深度确实还不够,在一些内容的理解上也存在瑕疵和不完整之处。因此在正式发版出书之后,也陆陆续续收到了不少负面的反馈
除此之外,由于之前经验不足,没有与读者建立一个比较稳定的沟通渠道,导致了大量的读者买书之后不知道从哪里可以找到我,因此许多问题也没办法及时回复和响应。
第二个版本
2020 年时,和一位字节大佬在讨论前端知识基础时,我猛然察觉自己在 JavaScript 的领悟比我当初写第一个版本时又精进了不少。于是,那一次之后,我决定重构这本书。
重构之前,我又重新学习了 ECMAScript 标准,并修正了之前存在的过时与错误的理解。并且决定围绕核心进阶作为新的切入点,来完善这本书。
学习内存,就要彻底搞懂堆内存与栈内存的运行规律,要彻底搞懂 V8 引擎底层的垃圾回收算法到底是什么样的。
学习面向对象,就要把理论和实践结合在一起。
学习事件循环,就要搞明白浏览器网页在运行时的一整套调度机制。
因此,新版本的《JavaScript 核心进阶》,是以构建知识体系为基础目标,以理论结合实践为呈现标准,以帮助读者进阶为核心愿景的一本书。它涵盖了大多数 JavaScript 基础到项目开发的核心要点
许多前端朋友能够比较容易的把实践应用相关的知识点掌握好。但是基础理论与核心理论的欠缺,是目前许多前端从业者共同的短板。因为理论知识的重要性不是那么容易被直接感受到,在学习过程中,他们是非常容易被忽略的。
因此,在这个大背景之下,我又重新梳理了四个核心基点,作为知识体系构建的基础脉络。
第一条基线以内存为核心。
高阶前端开发者对内存的掌握一定是要了然于心。我们需要能够比较明确感受到程序在运行过程中对内存的运用与回收,能够知道什么时候利用内存的特性加快程序的运行,知道用什么方式节省内存的消耗。
第二条基线以事件循环为核心。
对于前端开发而言,事件循环是一个基础知识,但是与此同时,它又是一个高阶知识。大多数前端开发者对其的了解都不够深入不够完整,从而许多人比较容易忽略他的重要性,只把它当成一个小八股知识来学习。事件循环机制是 JavaScript 程序运行的核心机制,与此同时,它也是一个完整的复杂交互场景的解决方案,对于我们实现复杂项目有很大的参考意义。搞懂搞透它,是高级前端进阶资深前端的必备技能。
第三条基线以封装理论为核心
在前端开发中,封装是一个不被重视的软技能
。它的重要性更难被感受到了。但是这又是我们掌握好一门开发语言的核心能力。我们学习函数、函数式编程、面向对象、设计模式、模块化等都是在封装的理论上扩展开的。与此同时,在实践中,如果我们想要构建更加稳定,可维护性更高的项目,封装能力也在扮演者非常重要的角色。封装能力是我们需要花费大量的时间持续练习和进步。
第四条基线以模块化为核心
结合封装思维,透彻理解模块化这对于项目架构师有非常重要的作用。模块化思维学起来简单,但是要用好却很困难。因为项目实践要远比我们学习时的案例要复杂。如何从复杂的场景中合理的理清模块化分,在满足语义的前提下让模块之间有一个合理的交互,是我们追求的目标。
在这些思考之下,我将书中的内容划分为 7 个大类
1、内存与数据结构 2、函数 3、面向对象 4、设计模式 5、模块化 6、组件化 7、TypeScript 核心理念
时至今日,重构的第二版也过去了 3 年多时间,在这个过程中,ES6 已经淡化成为了日常基础知识,TypeScript 也逐渐被普及,不再如当年那样还是一个新内容。但是书中所涉及到的许多进阶内容,依然在帮助着购买它的读者朋友,他们会在面试之前重温这本书。
也有早期的读者已经变成了面试官,会从书中摘抄部分知识作为面试题与候选人交流。
所以让我觉得很自豪的是,《JavaScript 核心进阶》抗住了时间的考验。
新的旅程
如今,大学毕业十一年的我,已经退出职场,成为了一名独立开发。有一位曾经在字节工作过的朋友找到我,说他们计划搞一个知识付费平台《新语》,希望能够与我合作共创。
作为一个独立开发者,我也有自己单独完成的网站,例如承载我付费小册《React 19》的独立站 usehook.cn
。但是对于这种需要多人协作才能完成的中大型网站我也很想参与,因此就欣然答应了他的合作邀请。
目前该平台已经正式上线。并且,我已经将我的《JavaScript 核心进阶》最新版发布到该平台。大家可以点击阅读原文或者长安识别如下二维码购买本书。
i之前已经购买过的朋友可以在旧平台继续阅读或者私信我获得新平台兑换码。
我的这本书,加上后续的补充章节,一共有 77 篇文章,有许多章节单独一章都超过了一万字,内容扎实。它将会在《新语》 开启新的旅程,欢迎大家前来,与它一同前行。
购买之后,请务必添加我的微信 icanmeetu
进入交流群。对于新平台的使用体验、改进建议、bug 等反馈,我们评估之后会尽快排期修改,对于书中知识点内容的疑问也可以在交流群中咨询。
你也可以推荐朋友购买本书,推荐成功你将会获得 30% 的分销返利。
推荐阅读
掌握 React 19,推荐阅读我的 付费小册 React19
成为 React 高手,推荐阅读 React 哲学