javascript 好书[^2022_V1]
开始[^必学基础-红宝书]
- 新手入门系统学习的书籍一:20年8月出版的[《JavaScript高级程序设计(第4版)》](JavaScript高级程序设计(第4版) (豆瓣) (douban.com))有电子版和纸质版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083429032-1818931423.png)
此书虽然是JS必学之一的红宝书,但章节安排欠佳(比如面对对象章节放于函数章节之前),所以需要按照一定的顺序去阅读章节最佳;以及书中把promise
翻译成期越,不能说差不多凑合,只能说是有点摸不着头脑。
建议红宝书配合[现代javascript教程(在线)](现代 JavaScript 教程)学习更佳
实时性做的非常棒,从入门,提升和进阶三个方向讲解,并且每个知识点还配有习题和解析,配合红宝书学习体验更佳。
2 .新手系统学习的书籍二:21年3月出版的[《JavaScript权威指南(原书第7版) 》](JavaScript权威指南(原书第7版) (豆瓣) (douban.com))有纸质版无电子版(阅读体验升级,600多页不含文档参考)。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083608070-1289871761.jpg)
实在不想买纸质书的可以暂时阅读12年4月出版的《JavaScript权威指南(原书第6版》作为平替,但不建议。出版时间距今10年请自行斟酌(阅读体验不及红宝书,1000多页含文档参考)。
总结:《红宝书4版》和《犀牛书7版》二选一足以,都是李松峰老师翻译,个人建议优先选择红宝书作为入门书。
进阶ES6[^必学基础]
- 进阶ES6的书推荐19年5月出版的[《javascript 深入理解JS特性》](深入理解JavaScript特性 (豆瓣) (douban.com))有纸质版和电子版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083650466-1331016212.png)
深入理解JS特性,是一本很精彩的从es6讲起的书,很推荐,但是建议在阅读红宝书之后看, 我们有了前端的知识体系后,这本书的收获会巨大。
总结:学完入门的其中一本加上这本进阶ES6,基本上应对一般的面试问答没有什么问题。
横向拓展
框架[^工作必用]
- 提到框架,首当其冲的必然是
VUE
啦。在此推荐今年2月份出版来自Vue官方团队成员霍春阳的新书《Vue.js设计与实现》仅有纸质版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083727500-2082165647.jpg)
之前刘博文有一本《深入浅出Vue.js》解析的是Vue2的源码,这本Vue设计与实现详细剖析了Vue3的原理,并且站在更高的维度讲解了框架的设计,比如权衡的艺术,框架设计的核心要素,然后拆解了Vue3核心的模块,响应式系统,渲染器,组件化,编译器和服务端渲染,这本书可以帮你迅速掌握Vue3原理。
实践[^提升进阶]
- 首先推荐
jquery
作者18年3月份出版的《JavaScript忍者秘籍(第2版)》,这本书所有章节,都是从具体的实际问题入手,不纠结太多语法细节,非常推荐。有纸质版和电子版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083803173-1300898504.png)
但是内容包含了实现常见功能的最佳实践,第二版也是es6+为主,重点集中在工程问题的捷达上,比如函数的上下文,promise的实现,宏任务微任务,闭包的原理以及浏览器开发技巧等,这本书最大的有点就是学起来有趣,不过翻译有些小问题,建议有实力的直接看英文版。
- 然后推荐的第二本是15年5月出版的《JavaScript设计模式与开发实践 》有纸质和电子版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083856100-1314326.png)
我们通过学习前人总结的最佳实践,并且通过js种的实战加深理解,包括单例代理工厂迭代器,发布订阅享元,装饰器等模式,和一些常见的编程原则,是一本不可多得的好书,不过例子还是显得过于分散,其实我觉得设计模式特别适合和前端的组件库一起讲解,通过一个体系化的组件库来讲解各种不同的设计模式。
- 然后推荐的第三本是19年5月出版的《学习JavaScript数据结构与算法(第3版)》有纸质和电子版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083912340-1509584982.png)
- 最后一本推荐20年10月份出版的《前端开发核心知识进阶:从夯实基础到突破瓶颈》有纸质和电子版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083939539-896882398.png)
内容涵盖33个主题,内容涉及JavaScript基础强化、JavaScript语言进阶、不可忽视的HTML和CSS、前端框架、前端工程化、性能优化、编程思维和算法、网络知识等,聚焦前端开发基础知识和进阶技能,关注前端工程化和体系化,结构清晰,循序渐进,深入浅出。
这是一本大而全的书,从宏观视角介绍了前端进阶路上所需要的各路知识点。
纵深挖掘
深入设计理念和语法细节[^进阶必学-黄宝书]
到了这一步就是钻研语法和深入设计了,只推荐15年4月份出版的《你不知道的JavaScript(上卷)》这一系列,上中下共三册,有开源电子版和纸质版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515083953025-855431549.png)
三本书看上册就够了,深入了解原型链,this
,闭包,词法作用域等。第一次读到感觉重塑了对js的理解,也是帮你秒杀各路javascript面试题的神书,中册也还不错,关于异步编程和生成器的内容值得一读,下册就算了,就是介绍了一点es6。
JS发展史[^开拓视野]
最后推荐这本先开源后出版的《JavaScript 二十年》 (history.js.org)
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515084021810-966680851.jpg)
本书由 JavaScript 之父 Brendan Eich 与 ES6 规范首席作者 Allen Wirfs-Brock 联合编写,记录1995~2015共计 20 年的 JavaScript 演化经历。全书不仅讲解了大量语言技术细节层面的演进,更复盘了更高层面上规范制定与标准博弈中的历史成败,是一部讲述人类如何在商业与技术上的竞争合作中促进产业发展的故事。
现在被知乎的doodlewind雪碧大兄弟翻译,从语言诞生,创立标准,改革失败和继往开来四部分讲解javascript如何从一个草鸡语言,发展到现在的繁荣,除了当做八卦看之外,我们能了解现在每个语法,都不是天生如此,也不是某个龟腚,而是诸多的权衡讨论的结果,还能了解现在js的规范TC39组织推进语法改进的方式,而且也是装逼吹牛逼必备的历史知识。
JS悟道[^开拓视野]
承接上文配合《JavaScript 二十年》一书阅读,《JavaScript 悟道》新版出版于21年6月,有电子版和纸质版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515084041548-820618041.png)
此书算是javascript语言精粹的升级版了,作者是json的作者老道,目录真的是朴实无华,全是how works,看这本书的感觉就让你对js的理解从what到how,聚焦于javascript的运行原理,但是本书有很多老道的私活输出,要带着编程的眼光阅读,比如其中对尾调用的阐述,其实主流浏览器是没有全部实现的,建议这本配合javascript20年历史书一起看,你会对javascript发展过程中的奇闻异事更有感触。
终极进阶[^绿宝书]
能学到这里不亚于张三丰找到了《九阴真经》,如果你能修炼学完《绿宝书》则必成大器。此书由国人所著,20年5月份出版《JavaScript语言精髓与编程实践(第3版)》)有电子和纸质版。
![image](/i/l/?n=23&i=blog/1841779/202305/1841779-20230515084057757-1730069411.png)
豆瓣高赞评价:
这是国人写的书,在国内技术原创书中属于稀有的“异数”,作者从语言本质的角度去写,写得极为深入,本人阅读后受益非浅。书中提到了《程序设计语言原理》、《程序设计语言实践之路》、《设计模式》、《JavaScript权威指南》和《JavaScript高级程序设计》等书,估计作者他都阅读了。读者在阅读这本书时也要看看相关章节,这样才能弄明白本书到底在讲什么。
本书高屋建瓴,习惯用俯视而不是平视
这本书以JavaScript的视角去看整个计算机语言的世界,小角度引来的大话题。作者从Pascal说到C++和Java,从他做的第一个Web应用到由他负责的开源框架,那是无一不谈,无一不扯啊。于是乎,作者个人的观点随着他的笔间时不时的会带出来,有些点呢不知道他是知道呢还是不知道,反正我是之前知道看了却反而不知道了。比如在冯诺依曼体系结构下的命令式编程语言发展史,之前本来是阅读了《程序设计语言原理(原书第8版)》书中的相关知识(见第1章),那里面讲得清楚明了,结果阅读了这本书中同样的内容章节后反而让本人弄得糊涂了。
这本书的毛病也是国人原创书常见的毛病:本来一个点能说清楚的,结果作者的文字表达能力有限越说却越说不清,还跑离了却又想绕回来,最后弄得这个点只有作者本人和少数明白人才明白,也不加个注释说明。比如书中的“词法作用域”和“变量作用域”那一部分,作者后来又用“圈地”和“割据”来形容,这样不免让读者又要去思考后来形容的这两种 stuff 是 what ,how, why 了。
但是作者的编程基础的功底和开发经验是不容质疑的。他其实是想借现在JavaScript的盛名写本这样的“语言本质”论。所以,这本书虽然不可能成为经典书--原因前面已讲述,但是是一本不可多得的好书。下面说说这本书与市面上相比它独有的,也就是说好好在哪儿:
触类旁通
把JavaScript从资深程序员的思维模式去挖掘这门语言的奇妙与复杂。
基本原理
除了书名中有JavaScript,和为数不多JavaScript应用层面的内容外,更多的而是谈编程语言实现机制和底层原理,甚至是计算机语言发展观和未来的趋势把握。
非主流编程
详细的函数式编程语言的知识,对阅读《计算机程序的构造和解释》这本书有帮助。
开放分享
网上有第1章的内容,和第3章到第5章电子书的内容,及第7章的前4节,所以只有第2章、第6章及第7章的后几节没有得看。这是国内出版界中技术书中极少见的开放和分享态度。
支持国人多出原创好书!走精品路线!