Understanding ECMAScript 6 中文版(可下载电子书)

8,413 阅读5分钟

点击下载《Understanding ECMAScript 6》中文版电子书

关于

原书《Understanding ECMAScript 6》,作者 Nicholas C. Zakas ,在线阅读地址。此外作者本人为此书也在 github 上设置了专区,发现问题可以到那里去提交 issue 。

此书中文版暂时还未出版。而之前曾有 oshotokill 对本书进行了义务翻译(阅读地址),但整体工作尚未完成,还欠缺三章:

  • 第六章 符号与符号属性
  • 第十章 增强的数组功能
  • 第十二章 代理与反射接口

原先我只是对 oshotokill 的翻译提出了修正建议,此后才对这三章进行了翻译。翻译完成后看到所提的修正建议并未得到回应,猜测可能是他太忙没时间,因此最后我决定将此书完整重译一遍,只有引言部分未翻译。其中有少数地方借鉴了 oshotokill 的翻译,特此表示感谢。

在 GitBook 页面上阅读本书,请点击首页右上角的“Read”按钮;也可以点击“Download”按钮下载 PDF 、 Mobi 或 ePub 格式的电子书。

翻完之后的感觉 —— 确实挺累的,毕竟是第一次做全书翻译。这次是出于本人兴趣的义务翻译(同时最近也相对比较有空),可能存在错误,肯定也有语言表述方面的一些问题,欢迎指正。无论是对原书内容的指正还是对译文的指正,都可以。

本书原作者 Zakas 长期供职于雅虎,是著名的 JS 库 YUI 的主要作者,有着非常丰富的一线工作经验。他同时也是一个成功的作者,其最重要的著作《 JavaScript 高级编程》基本上是 JS 领域的必读之作,而他还出版了另一些质量很高的著作。《高级编程》一书实际上并不是完全高深的内容,而是从基本的层次开始讲述,逐步提高,全书结构比较良好,对初学者或有一定经验的开发者来说都是很有用的。

ECMAScript 6 作为 JS 的新标准 2015 年便已推出,已经不是最新版了,但到目前为止市面上完整介绍其特性的书却非常少。其中原因也许是语法变动太大,而有些特性浏览器直到现在都没有完全支持。不过通过 Babel 之类的工具,早就可以开始使用 ES6 了,所以这方面完整著作的缺失不能不说是一个遗憾。

本书的英文版在 2016 年 8 月 30 日正式出版,一如既往保持了 Zakas 的一贯水准。组织结构比较合理,并不完全是罗列新特性,而是有侧重点地进行介绍。同时在介绍某些特性时,还会特别提醒读者其中的范例运行效率不高,可考虑用其他方式实现,体现出作者负责任的态度。此外,在不少地方还会讲述新标准的制定背景,有的是因为原有功能缺乏,有的是旧版 ES 有坑容易误踩,因此有些新标准才顺应形势得以出台。如果认真学习此书,不但对了解并使用 ES6 有帮助,也会有助于规避 JS 的一些旧坑。最后,此书在附录部分对 ES2016 也作了介绍。

即使像《 JS 高级编程》这样的经典著作,也会存在一些问题。例如原书对于闭包的定义我个人就觉得很不满意。其定义不能说是错的,但有两个问题:1、用词有二义性;2、太过简略,没有在定义中体现出 JS 闭包的真正特征。

相应的,本书也存在一些问题。

  1. 代码或引用内容中存在一些笔误。
  2. 有些描述不符合浏览器的实际情况,这也许是浏览器对规范标准的支持有偏差。
  3. 有少数错误,这在译文中都有标注,但可能还有译者所未发现的。同时因为翻译全书确实比较累,所以有些范例代码我比较快地跳过去了,没有特别仔细看。如果读者发现有错,可以在此处提出,也可以到原作者的 github 上去提交 issue (但是原作者回应可能不会太及时)。
  4. 有些内容讲述得不够完整,例如 Promise 链的问题。在比较长的链中,如果中间抛出了一个错误,而这个错误没有被 catch() 及时捕获,就会沿着整个链继续向下传递,跳过链中的所有 then() 处理,直到遇到 catch() 为止,或是静默失败(链条下方没有任何拒绝处理的情况下)。这一点在原书中并没有明确进行描述,这是让我觉得美中不足的地方。而且关于 Promise 链,原书的范例都太简单了,除上述所提的内容外,其实还有更多可讲的。

但瑕不掩瑜,这本书还是值得一看的好书。

另外据可靠消息,这本书的中文版即将正式出版。由于本人的翻译属于义务翻译,因此到时候还是建议有兴趣的人去找实体书看看,至少有个参照,也方便收藏。

点击下载《Understanding ECMAScript 6》中文版电子书