大家好,我是大圣,今天给大家带来期待已久的 javascript 书籍测评,工作者 9 年多看过的 js 书大部分都在这了,会分成这几个部分来推荐
首先是系统化学习 js 的书,让你掌握前端工程师必备的 js 基础,
然后是一些横向扩展的书,比如算法呀,设计模式呀,工程实现呀,框架设计呀等,属于最佳实践的类型, 然后是关于语言设计细节的进阶书,深入语言设计的细节,进阶和面试装逼必备
然后是一些小书,可以快速翻越,掌握 js 某一个知识点, 然后是略微过时,但是依然值得一读的经典, 最后介绍关于 es6 和不推荐的书
这是文字稿,视频已经发布在 B 站,欢迎移步 https://www.bilibili.com/video/BV15f4y1D7Fo
https://book.douban.com/subject/6038371/
首先语言本身的体系化学习,首先推荐这本《 javascript dom 编程艺术》,这本书用简单的图片库和动画案例,让你快速入门 js,产生兴趣,如果想全面的学习 js 还是不够的, 推荐这本刚上线不久的前端圣经,也被几代前端人称为红宝书
https://book.douban.com/subject/35175321/
《 javascript 高级程序设计》第四版,我手里还有第二版和第三版,是几代前端体系化学习 js 必看的书, 和犀牛书齐名,虽然叫高级程序设计,但是阅读难度比较低,第四版全面使用 es6+的语法,比较意外的是还把生成器迭代器,promise,proxy 单独抽离成了章节,最近有研究 vue3 源码,对 proxy 和 reflect 困惑的同学们快去学习吧,除了语法层面的全面更新,浏览器方便也加入了 dom4 的规范,比如 mutation observer,这个 api 在我们统计一些指标比如 FMP 的时候很有用,然后就是 canvas,webgl 以及各种现代浏览器的 api,比如文件,通知,web worker,错误处理,模块化以及最佳实践,第四版绝对是体系化学习 js 最好的书
而且最近这本书唯一的吐槽点,就是把 promise 翻译成了期约,我还专门问了 hax,之所以叫期约定,是因为 promise 这个东西,在有的语言里叫 future, 这里做了个合并,把 future 和 promise 合并,称之为期约,其实我也觉得 promise 不翻译就 ok,但是如果翻译的话,期约算是很准确了,不过无伤大雅,不耽误这本书的地位
对了 这本书估计看一遍不够,看个两三遍效果更好,十月份我准备再看一遍
其实体系化学习 js 这两本就够了, 还有几本电子书我也很推荐
一个是《现代 javascript 教程》 ,实时性做的非常棒,从入门,提升和进阶三个方向讲解,并且还配有习题和解析,配合红宝书学习体验更佳 但是我本人不太爱看电子书, 所以现在把它当做工具书来查询用
https://github.com/mjavascript/practical-modern-javascript
还有一本就是深入理解 JS 特性,是一本很精彩的从 es6 讲起的书,很推荐,但是建议在阅读红宝书之后看, 我们有了前端的知识体系后,这本书的收获会巨大,而且这哥们有一系列书,后面几本回头我看完了再补充,
学完这些对付一般的前端面试就没问题了,但是行走江湖只有武器是不够的,还需要精妙的武功秘籍,也就是最佳实践
https://book.douban.com/subject/30143702/
首先推荐 jquery 作者的《 javascript 忍者秘籍》名字很中二,但是内容包含了实现常见功能的最佳实践,第二版也是 es6+为主,重点集中在工程问题的捷达上,比如函数的上下文,promis 的实现,宏任务微任务,闭包的原理以及浏览器开发技巧等,这本书最大的有点就是学起来有趣,不过翻译有些小问题,建议有实力的直接看英文版
这本书所有章节,都是从具体的实际问题入手,不纠结太多语法细节,非常推荐
https://book.douban.com/subject/27133542/
然后推荐《 javascript 框架设计》主要是针对各种兼容性,包括语言能力扩展,选择器引擎,类,异步模型,动画引擎等,有太多兼容性的处理方案,对 js 功底提升明显,不过在现代浏览器普及的今天,稍微有一些过时,不过还是推荐一下,仅此纪念一下司徒正美
https://book.douban.com/subject/26382780/
然后推荐设计模式相关,两本书,主推这本《 javascript 设计模式与开发实践,设计模式就是最佳实践,就像我们打王者,亚瑟就是要走上单,吉吉国王就是最适合打野,每个英雄特点不一样,就会诞生出各种战斗力最强的组合和装备选择,设计模式也是如此,我们通过学习前人总结的最佳实践,并且通过 js 种的实战加深理解,包括单例代理工厂迭代器,发布订阅享元,装饰器等模式,和一些常见的编程原则,是一本不可多得的好书,不过例子还是显得过于分散,其实我觉得设计模式特别适合和前端的组件库一起讲解,通过一个体系化的组件库来讲解各种不同的设计模式,以后有机会我写一本 yeah
然后是算法,除了我手里这本,还有一个挖掘机配色的 js 算法书,这两本其实讲的都还不错,不过我都不推荐,因为算法只入个门是没意义的,需要体系化的学习和刷题,算法我推荐《算法》第四版,java 的例子,正好用 js 重写一遍,建立完算法知识体系后,再来看这些 js 算法书查缺补漏一下更好,以后有机会我再做个节目推荐一些学算法的书
如果只看这两本 js 的算法书,质量虽然不错,但是会有一钟学了很多东西,但实际没啥卵用
上面的书看完,就已经对 js 的方方面面有了一个很好的掌握了,继续进阶,就需要对 js 本身语言设计细节和执行原理有所涉猎了, 当年 Brendan Eich 来过一次中国,有幸合影后,在 js 作者的光环下我要开始去研究 js 的实现细节, 在推荐一系列技术书之前,先推荐一本刚发布的电子书
本书由 JavaScript 之父 Brendan Eich 与 ES6 规范首席作者 Allen Wirfs-Brock 联合编写,记录 1995~2015 共计 20 年的 JavaScript 演化经历。全书不仅讲解了大量语言技术细节层面的演进,更复盘了更高层面上规范制定与标准博弈中的历史成败,是一部讲述人类如何在商业与技术上的竞争合作中促进产业发展的故事
现在被知乎的doodlewind 雪碧大兄弟翻译,从语言诞生,创立标准,改革失败和继往开来四部分讲解 javascript 如何从一个草鸡语言,发展到现在的繁荣,除了当做八卦看之外,我们能了解现在每个语法,都不是天生如此,也不是某个龟腚,而是诸多的权衡讨论的结果,还能了解现在 js 的规范 TC39 组织推进语法改进的方式,而且也是装逼吹牛逼必备的历史知识
https://github.com/getify/You-Dont-Know-JS
深入 javascript 这本语言的设计细节,首先推荐小黄书系列,你不知道的 javascript,英文版 github 开源,但是我觉得看上册就够了,深入了解原型链,this,闭包,词法作用域等,第一次读到感觉重塑了对 js 的理解,中册也还不错,关于异步编程和生成器的内容值得一读,下册就算了,就是介绍了一点 es6, 期待第二版
https://book.douban.com/subject/30362974/
还有一本就是精粹的作者写的 how javascript works,我还在等国内发行,github 有开源的版本可以阅读,探究 js 的执行原理和一些高级的 api,比如 v8 引擎,内存管理,webassembly,mutationObserver, 性能优化,语法解析,shaodowdom 等方方面面,据说中文版死月翻译中,期待一下
这两本电子书都出版的话,我一定多买点送人
https://book.douban.com/subject/35085910/
然后重磅推荐我认为讲解 js 的《九阴真经》,绿宝书,《 javascript 语言精髓与编程实践》,第三版比第二版足足厚了一倍,不是着重于某些功能实现,而是讲解修炼内功的大道,开篇就是《天之道,损有余而补不足》,从结构化,面向对象,函数式,并行和动态五方面来讲解 js 的本质,我整整看了七月份一整个月,简短的语言无法介绍这本书,我们专门录了一个《前端会客厅》 邀请到作者周爱民老师详细讲解这本书,欢迎去观看
https://www.bilibili.com/video/BV1M5411a7GK
如果你足够大神,可以直接看标准文档, 不过很惭愧,我一直没有读完这份 pdf,争取明年仔细学习一遍,如果能看完这个 pdf,上面的小黄书之类的就不推荐了
https://github.com/tc39/proposals
大家看完了那本《 javascript20 年后》,就会知道 javascript 语言的发现,现在是由一个叫 tc39 的组织在推进,大家可以去 github 围观各个提案,比如最近进 stage3 的 class fileds 是一个极具争议的提案,其他的private-methods, top-level-await, temporal 时间 api, 都值得期待
关于 tc39,大家可以关注 tc39 委员会成员贺师俊 hax,前端会客厅第三期也邀请到了贺老一起聊 tc39,欢迎移步 B 站
https://www.bilibili.com/video/BV1xT4y1L7ui
最后再推荐一些迷你的小书和一些经典过时的书把
《 javascript 迷你正则书》 《 javascript 编程精解》用游戏的方式讲解 js,很不错
dom 启蒙,javascript 异步编程,javascript 面向对象精要,javascript 函数式编程指南, 都是一些垂直场景的小书,值得一看
https://github.com/qdlaoyao/js-regex-mini-book
英文在线版
游戏式教学 体验不错
https://eloquentjavascript.net/
https://book.douban.com/subject/35011711/
https://book.douban.com/subject/25882606/
https://book.douban.com/subject/30283769/
https://book.douban.com/subject/24319975/
https://book.douban.com/subject/26352658/
还有犀牛书,蝴蝶书和这本精通 javascript 开发,都是略微过时但是值得一读的经典书目,尤其犀牛书,这是对我影响最大的 js 书,我当年对 js 的进阶,就是看了四遍犀牛书,阅读体验比红宝书差一些,更全更像文档一些,只不过现在过时了一些,期待第七版的发布,到时候再买一本做推荐
然后 es6 相关的一些书也不是很推荐了,直接上红宝书把,比如阮一峰老师的 es5 标准入门,适合作为工具书查阅细节,红宝书作者写的深入理解 es6,实战 ES2015 都不太推荐了
,最后大部分动物书都过时了,不推荐阅读了富应用开发,设计模式,模式,高性能,可维护,数据结构和算法, 还有当年很喜欢的 ppk,月影的王者归来,现在都不推荐了
最后总结一下,最简单粗暴的路线,就是红黄绿三步走,红宝书体系化,小黄书进阶语言细节,绿宝书学习 javascirpt 设计思想,其他的作为横向扩展
最后讲解一下午自己的学习心得,现在 vue,react 框架满天飞的时代,很多前端不愿意深入 js 了,这是很不对的做法,行走江湖,js 就是我们手中的大保健,框架固然重要,那是武功秘籍,最终能决定我们能走的多远的,还是我们对兵器本身的理解和内力,希望大家都能在 js 学习的路上有自己的心得体会,欢迎在留言区交流
当然前端也不能只学 js,还有 css,计算机基础,甚至还有些吹牛逼的书需要看,给大家秀一下午的书架,大家感兴趣的书也可以发在留言去后续我测评一下
欢迎加我微信,拉你进早起读书群,一起早上六点开始看书吧
1
putaozhenhaochi 2020-10-03 18:02:49 +08:00
绿宝书感觉有点晦涩。
黄宝书在看,还是比较舒服的 |
2
haishiwuyuehao 2020-10-19 18:35:03 +08:00
红宝书上的代码我都敲了一遍,没楼主说的这么简单的。
首先是这本书 API 数量多 以 DOM 来说: DOM 结构层次分明,各种 HTMLElement Child 。DOM 节点类型,DOM 节点维护,根据 DOM 节点类型进行文本内容合并,文本节点分割引起的 dom 节点变化,DOM1 的标准。DOM 1,2,3 Core,XML,HTML,CSS, Event,Events,Validation 等等。 ECMAScript 部分也可以把代码玩出花样。 我读了 3 遍,代码全敲过一遍(第三版)。再读四版,始终觉得该书是需要反复阅读理解,贴合项目有针对性的深入了解。 老实说,红宝书才算得上是 JS 最佳实践。 CSS 推荐楼主一本张鑫旭“CSS 选择器世界”,CSS 这门开发语言也是很复杂,很难。 |
3
woniuppp OP @haishiwuyuehao 相比于小黄书和绿皮书,红宝书是阅读体验最好的一本了
css 基本有的书我也都买了,正在测评,css 世界刚出就买来看了 |