開發與維運

《深入理解ES6》| 每日读本书

编辑推荐

√ 不识老尼,枉为前端攻城狮,其成名作《JS高级程序设计》曾名动江湖。

√ Redux缔造者与React核心成员作序力荐,盛赞本书对JS的剖析无人企及。

√ 用直截了当的方式传达艰深的技术细节,对技术的理解方可高效送达。

√ 中高级开发者藉由本书可一举迈入对标准及其未来特性熟稔于心之化境。

test
【美】尼古拉斯·泽卡斯 著 / 2017年7月出版

内容提要

ES6是ECMAScript标准十余年来变动最大的一个版本,其中添加了许多新的语法特性,既有大家耳熟能详的Promise,也有闻所未闻的Proxy代理和Reflection反射;既有可以通过转译器(Transpiler)等方式在旧版本浏览器中实现兼容的let、const、不定参数、展开运算符等功能,亦有无论如何都无法实现向前兼容的尾调用优化。深入理解ES6的特性对于所有JavaScript开发者而言至关重要,在可预见的未来,ES6中引入的语言特性会成为JavaScript应用程序的主流特性,这也是《深入理解ES6》的初衷。希望你通过阅读《深入理解ES6》可以了解ES6的新特性,并在需要时能够随时使用。

作者简介

Nicholas C. Zakas
自2000年以来一直致力于Web应用程序的开发,重点关注前端开发,并以写作和讲述前沿最佳实践而闻名。他曾于雅虎主页任职5年有余,他也是多本书的作者,其中包括The Principles of Object-Oriented JavaScript(No Starch Press出版社)和Professional JavaScript for Web Developers(Wrox出版社)。

关于技术评审
Juriy Zaytsev(在网上以kangax著称)是纽约的一位前端网站开发人员。自2007年以来,他一直在探索JavaScript的怪异特性并撰写相关文章。Juriy为多个开源项目做出过贡献,其中包括Prototype.js和其他的热门项目,如他自己的Fabric.js。他是按需定制打印服务printio.ru的共同创始人,目前任职于Facebook。

精彩导读

前言

JavaScript核心的语言特性是在标准ECMA-262中被定义的。该标准中定义的语言被称作ECMAScript,它是JavaScript的子集。在浏览器与Node.js环境中通过附加的对象和方法可添加更多新功能,而JavaScript的核心依然保持ECMAScript的定义。总的来说,ECMA-262标准的持续发展对于JavaScript的成功功不可没。ECMAScript 6是JavaScript最新的重大更新,本书将为你讲解其中的改动。

ECMAScript 6之路

2007年,JavaScript走向了发展中的转折点,逐渐兴起的Ajax开创了动态Web应用的新时代,而自1999年第三版ECMA-262发布以来,JavaScript却没有丝毫改变。当时,负责推动ECMAScript 语言发展的TC-39委员会将大量规范草案整合在了ECMAScript 4中,新增的语言特性涉足甚广,包括:模块、类、类继承、私有对象成员、可选类型注释及众多其他的特性。

然而,TC-39组织内部对ECMAScript 4的动议草案产生了巨大分歧,部分成员认为不应该一次性在第四版标准中加入过多的新功能,而来自雅虎、谷歌和微软的技术负责人则共同商讨并提交了一份“ECMAScript 3.1”草案作为下一代ECMAScript的可选方案,此处的“3.1”意在表明只是对现有标准进行小幅的增量修改。

ECMAScript 3.1引入的语法变化极少,这一版标准相对而言更专注于优化属性特性,支持原生JSON,以及为已有对象增添新的方法。委员会曾经尝试融合ECMAScript 3.1与ECMAScript 4,但由于对峙双方对语言未来的发展方向分歧过大,最后以失败告终。

到了2008年,JavaScript创始人Brendan Eich宣布TC-39委员会将合力推进ECMAScript 3.1的标准化工作。他们选择将ECMAScript 4中提出的大部分针对语法及特性的改动暂时搁置,到下一个版本ECMAScript的标准化工作完成之后,委员会全体成员再努力融合ECMAScript 3.1和4中的精华,他们还给这个版本起了一个昵称—ECMAScript Harmony(取和谐之意)。

经过标准化的ECMAScript 3.1最终作为ECMA-262第五版正式发布,它同时也被称为 ECMAScript 5。委员会表示他们永不发布第四版,以避免与从未面世的“ECMAScript 4”产生命名冲突。基于ECMAScript Harmony的工作随后陆续展开,继承了精华的ECMAScript 6将成为继ECMAScript 5之后发布的首个新标准。

ECMAScript 6标准的特性已于2015年全部完成,并被正式命名为“ECMAScript 2015”(由于开发者们对ECMAScript 6更为熟悉,因此本书将继续沿用此称谓)。新标准的变化俯拾即是,大到全新的对象和模式、大幅的语法改动,小到为已有对象扩充新的方法。更令人激动的是,ECMAScript 6中点滴的变化全都致力于解决开发者实际工作中遇到的问题。

关于本书

深入理解ECMAScript 6的特性对于所有JavaScript开发人员来说至关重要,在可预见的未来,ECMAScript 6中引入的语言特性将构成构建JavaScript应用程序的基础。这也是本书的初衷,笔者希望你通过阅读本书来了解ECMAScript 6的新特性,并在需要时随时能够予以使用。

浏览器与Node.js中的兼容性

开发者们正积极地为Web浏览器及Node.js这些JavaScript的宿主环境添加ECMAScript 6的新功能。本书只关注规范中定义的正确行为,不会对比每种实现间的差异。如此一来,读者所使用的JavaScript环境有可能与本书中描述的不一致。

本书的目标读者

本书是专门为熟悉JavaScript和ECMAScript 5的读者准备的指南,帮助大家理解ECMAScript 5和6之间的差异。对ECMAScript 6早已熟稔于心的读者不必继续阅读下去。本书特别适合想了解语言未来特性的JavaScript中高级开发者,无论你的工作环境是Node.js还是Web浏览器,本书都非常适合你。

本书不适合从未写过JavaScript代码的初学者,读者们需要对这门语言的基础知识有一定的理解,这样才能发挥本书的最大效用。


积跬步以至千里。每天读本书,为您搜罗最具权威专业书籍,更多图书推荐请关注每日读书

好知识需要分享,如您有喜欢的书籍想与广大开发者分享,请在文章下方评论留言,我们将为大家推荐您的爱书!

Leave a Reply

Your email address will not be published. Required fields are marked *