直到重看第1版的译者序,我才意识到,时间竟然已经过去快4年了。
其间,JavaScript的发展丝毫没有减速的迹象,随着新一轮的浏览器竞赛,HTML5逐渐得到普及,JavaScript在Web开发领域中的地位日益提高。NodeJS的出现,更是让JavaScript蔓延到服务器端编程领域。还值得一提的是2年多以前CoffeeScript的诞生,它吸收了JavaScript语言的精华,去除了很多本书中提到的毒瘤和糟粕,还添加了很多现代脚本语言的特性,仿佛就是老道(我们私下里这样尊称本书的作者Douglas Crockford)所想要的JavaScript精华子集。老道本人也确实对它推崇有加。
这本书很薄,但承载的内容却非常丰厚和深入。
已经10年未有重大版本发布的ECMA,终于在2009 年底发布ECMA-262的第5个版本(ES5),这个版本在最后时刻取代了过于激进的ED4(JavaScript 2.0),据说老道的倡议起了重大的作用。谢天谢地,我真不愿意像写Java一样写JavaScript。本书中的一些精华也被ES5 采纳,比如JSON成为ES5的标准组件;再比如ES5支持“严格”模式,在此模式下,使用未声明的全局变量或者with语句,都会抛出错误。下一代的ES版本(ES6)正在制定中,它的名字是我们无比熟悉的“Harmony(和谐)”,期待更多本书中的优秀思想会出现在ES6中。
2009年,在北京举行的Qcon大会上,我和学鹍有幸遇到了老道。他比我想象中高大,留着拉风的络腮胡子(后来我看到了他未留胡子的照片,觉得老道还是留胡子的好)。人很安静,看上去有那么一点技术人员的木讷。但站在演讲台上却是侃侃而谈,掷地有声。
这次修正了80余个错误。一些已经过时的经验和数据,我们也尽所能通过译者注进行了标注。在翻译的过程中,我们曾遇到一些与自己的开发经验有冲突的部分。我也在不同场合多次听闻国内外的业界同行,对本书的部分内容提出了不同的看法,有人认为本书一些观点不是JavaScript的最佳实践,有人甚至言辞激烈地说有些观点根本就是老道的个人主观看法,而非科学的求证。
在我眼里,我的孩子是世界上最漂亮的宝宝。相信老道视他提炼的JavaScript子集,就如同我看自己的孩子。其实,在最开头就已表明:本书是他根据自己的经验提炼的精华子集。也许,每个开发人员对何谓精华、何谓糟粕有自己的看法。但我想,JavaScript还会不停地发展下去,本书也许还需要多次修订,但“取其精华,弃其糟粕”的思想是不会过时的。
JavaScript 曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax 的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”。本书剥开了JavaScript 沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript 子集,让人看到一门优雅的、轻量级的和非常富有表现力的语言。作者从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9个方面来呈现其精华,并附录了该语言的毒瘤和糟粕及其避免方法。最后还介绍了JSLint,通过它的检验,能有效地保障我们的代码品质。
这是一本有关 JavaScript 语言本质的权威书籍。如果为了理解它而不得不反复阅读,请别沮丧,学习、理解、实践大师的思想将是你所获得的回报。