JavaScript语言精髓与编程实践(第3版)
周爱民
推荐序1 一本不是所有人都需要的好书
这个有点绕口的标题,是从豆瓣上本书第1版的一个书评标题照录而来的。豆瓣上排名前列的评论还有“这是一本硬书”“国内技术原创书中稀有的‘异数’”等。实际上,我觉得不仅是国内,算上在市面上能看到的所有JavaScript相关的书,本书都绝对堪称“硬书”“异数”。
传统上,许多大部头的JavaScript相关的图书,会有大量篇幅介绍DOM相关的API和如何结合语言与平台API进行Web前端编程,这些年也可能换成是Node.js的API和服务器端编程。从入门或进阶来说,这样的编排都是合适的,因为结合特定平台和领域的具体编程实践可以更快速地建立学习的正向反馈。专注JavaScript语言本身的书也不是没有,ES6时代到来之后,颇有几本书全面细致地介绍了JavaScript语言的新特性。甚至有很有名的书,会一直讲到不为多数人所知的语言细节,受到中高级开发者的追捧。不过这些书还都是用来“学习”语言的书。
爱民的这本书,却不是一本“学习”用的书,而是一本“阐释”用的书。不要说JavaScript初学者,就算你有三五年甚至十年的JavaScript开发经验,读起这本书可能也不易。因为绝大部分开发者不习惯这样思考问题。
比方说,这本书大的章节是按照结构化、面向对象、函数式、动态化等编程范式来展开讨论的,最新版中还加入了“并行计算”。
有些读者或许也看过一些谈编程范式的书,甚至专门谈在JavaScript语言中使用某一种编程范式的书(比如近年来随着某框架而在JavaScript圈逐渐火起来的函数式编程),但这些书还都是引领你“学习”一个范式,教你“应用”一个范式的书。
爱民这本书的出发点与其他书不同,并不是为了学习、应用“范式”,而是为了分析“编程语言”,取之为线索。为此,需要系统性地逐一论述多种主要范式,然后将JavaScript语言的要素分解并归纳入不同…