原文发表于《程序员》杂志。
《JavaScript 权威指南》的第 6 版是去年 4 月份出来的。当时我在 O’Reilly 官方网上商店购买《The Book of CSS3》,然后就顺手多买了一本最新版的《JavaScript 权威指南》。现在我买书都倾向于买电子版,好处是不用想办法把厚厚的一叠纸弄会国内(《JavaScript 权威指南》上千页啊!),搬家时不用搬也不会被遗忘,因为我总能登录 O’Reilly 的网站重新下载。
最近这本书的中文版出来了,《程序员》杂志让我写写书评,在收到华章寄过来的样书之后我就开始动笔了。老实说,中文版我只挑了几节看,所以以下所写内容更多是基于英文版的,不过中文版我看到的几节翻译质量都挺好的。
《JavaScript 权威指南》这本书,我是十分推荐新手用作进阶阅读的。在过去的半年里,我分别给 Adobe、Canon 和 CA 做了几轮 JavaScript 和 HTML5 的培训。每次做完持续两三天的培训后,都会有人问我如果想要继续深入学习该看什么书好,我都会说「如果你能够把《JavaScript 权威指南》看完,那就很了不起了」。
对于 JavaScript 新手入门来说,其实看什么书不重要,重要的是要能引起你兴趣使得你愿意动动手做做项目。在动手做过几个项目,对了 JavaScript 有了感性认识之后,你可能就会想要学习一些进阶内容,这时候《JavaScript 权威指南》就会成为最佳的选择。为什么在 JavaScript 里面可以使用 objA || objB 以及 obj && obj.prop 的写法?为什么在使用 for ... in 的时候 toString 不会出现,但自己附加到 Object.prototype 上的方法则会污染对象?这些问题入门书是不可能细说的,因为它们的任务是帮你尽快上手。这些问题可能你已经听别人提到过,可能你也在自己的项目中实践过,但最根本的「为什么」却从来没有深究过。读一读《JavaScript 权威指南》,你会发现平常死记硬背的概念背后其实都有理论支撑的。
对于已经写了多年 JavaScript 代码,并且对上述概念已经十分清晰的人来说,《JavaScript 权威指南》唯一有价值的地方就在于「第 6 版」这 3 个字上了。这一版的主要更新在于涵盖 ECMAScript 5 和 HTML5 的内容。
对于 ECMAScript 5,你可以去看 ECMA 262,里面每一条都说得十分清楚,不存在任何歧义,但也不保证你理解后就知道怎么用。这就好比说,我给你一把全新的电动工具,附带详细的说明书,但你看完之后还是不明白下次要在家里 DIY 点东西时如何把它用上。类似的,你看完 ECMA 262 里面对 Array.prototype.reduce 操作步骤的详细说明,你可能意识不到可以用它来写一个 sum 函数,也不知道这个 sum 函数该如何写。《JavaScript 权威指南》的价值就在于,给予你工具的同时也通过示例告诉你什么情况下应该如何使用工具。
至于 HTML5,你也可以去 www.html5rocks.com 自学。例如说,你想学做一个好像 Gmail 那样支持拖放上传和下载的页面,你可以通过搜索找到若干别人写下的文章和代码片段,东拼西凑你总能把这项功能做出来。你知道你用到了 Drag & Drop、Blob 还有 File API,然而你发现除了拼凑来的代码以外,你不知道这 3 项技术分别还能做什么,以及在什么别的场合下你应该想到要使用它们。这时候你就应该阅读《JavaScript 权威指南》了。
说完为什么我推荐看这本书,那么接下来我们讨论一下到底应该买英文版还是中文版。这本书你买中文版的话,要 100 元人民币多一点;去 O’Reilly 网站买电子版的话,则需要 20 美元(注册用户购买偶数本书半价)。因此购买中文版还是英文版,更多是从阅读体验方面出发。如果你想要锻炼自己的英文阅读能力,又或者你想要在 iPad 或 Kindle 上随时随地地阅读,那么你可以去买英文版。如果你希望尽快流畅地读完整本书,又或者你觉得电脑桌上用来垫笔记本电脑的那本《代码大全》该换掉了,那么你就买中文版吧。