前言

前言

时间倒回 1998 年,那时我在学校用 FrontPage 做网页。如果当时有人告诉我,将来我会以 Web 开发为业,我一定会笑出声来。之后数年,JavaScript 一直向前发展,很难想象 Web 离开 JavaScript 是否还能像现在这样繁荣。本书将一点一点地勾勒出一幅完整的现代 JavaScript 图景。

读者对象

本书主要写给 Web(前端)开发者、编程爱好者和拥有 JavaScript 实际开发经验的程序员。这些人以及想要进一步了解 JavaScript 语言的任何人都可以通过阅读本书受益。

为什么编写本书

本书旨在让你轻松学习 JavaScript 的最新进展,包括 ES6 及后续更新。ES6 是这门语言一个里程碑式的版本,它几乎与简化的规范制定流程同时发布。当时我就围绕 ES6 的不同特性写了不少博文,受到了很多读者的喜爱。关于 ES6 的书也不少,但这些书与我心目中的关于 ES6 及其未来的书略有不同。本书在详细介绍 ES6 的新特性时,不会陷入规范、实现细节,也不会探讨那些几乎不可能遇到的边界情形(如果这些情况出现,肯定是要在网上查找相关资料的)。

本书不贪大求全,而是专注于循序渐进的学习过程,确保先学内容可以成为后学内容的基础,避免你为寻找某个定义翻来翻去。本书配备了大量实用示例,不仅涉及 ES6,还涉及 2015 年 6 月(ES6 规范定稿时间)以后的其他变化,包括异步函数、对象解构、动态导入、Promise#finally 和异步生成器。

本书的目标是确保你能够顺利继续学习本系列图书的后续其他分册。在这第一本书的基础上,我们将接着探讨模块化设计、测试和部署,到时就不必再细究代码示例中用到的语法特性了。这种递进和模块化的学习方式体现在了整个系列中,包括每一本书、每一章,甚至每一节。

本书内容

第 1 章简单介绍了 JavaScript 及其标准化过程,回顾其发展,概述其现状,并展望其未来。这一章也会简单介绍 Babel 和 ESLint 这两个现代 JavaScript 开发必备的工具。

第 2 章介绍了 ES6 中最基础的部分,包括箭头函数、解构、letconst、模板字面量以及其他语法方面的新东西。

第 3 章讨论了用于声明对象原型的 class 语法、名为 Symbol 的新原始类型,以及 Object 对象的新方法。

第 4 章全面展示了 ES6 引入的流程控制机制。先从 Promise 开始,然后是迭代器、生成器和异步函数,这一章会详尽讨论每个主题并配有丰富的实例,揭示所有这些特性之间的协同关系。这一章不只是为了让你学会使用它们,更希望你能真正理解它们的最佳用途,从而简化自己的代码。

第 5 章介绍了 ES6 内置的新集合类型 SetMapSet 用于创建包含唯一值的集合,Map 用于创建对象映射。这一章也会给出实际的应用实例。

第 6 章展示了新的 ProxyReflect 内置特性,不仅会介绍如何使用代理,还会探讨为什么使用它们时要谨慎。

第 7 章主要讨论了 ES6 中的其他改进,特别是与 ArrayMath、数值、字符串、Unicode 和正则表达式相关的改进。

第 8 章讨论了原生 JavaScript 模块,并简单介绍了其诞生的历史,最后详细介绍了其语法。

第 9 章的标题是“实用建议”,这与其他编程语言方面的图书有所不同。我没有将自己的这些建议放到各个章节,而是将它们汇编到一章。你将在这一章中看到什么时候该用哪种变量声明方式或字面量引号,异步代码流的控制,以及使用类和代理到底好不好之类的建议和思考。

如果你已经比较熟悉 ES6 了,那么建议你认真阅读第 4 章,其中关于流程控制的部分非常有价值。第 7 章和第 8 章也是必读的,因为其中的内容很难在别处看到。最后一章无疑会激发你的思考:在模块化 JavaScript 这个新领域中,什么样的做法合适,什么样的做法不可取?无论是否同意我的观点,你都会从中受益颇多。

排版约定

本书使用了下列排版约定。

  • 黑体

    表示新术语和重点强调的内容。

  • 等宽字体(constant width

    表示程序片段,以及正文中出现的程序元素,比如变量、函数名、数据库、数据类型、环境变量、语句和关键字等。

 该图标表示提示或建议。

 该图标表示警告或警示。

O'Reilly Safari

Safari(前身为 Safari Books Online)是一个会员制的培训和参考平台,面向企业、政府、教育从业者和个人。

Safari 用户可访问 O'Reilly Media、Harvard Business Review、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGraw-Hill、Jones & Bartlett、Course Technology 等 250 多家出版社的上千种图书、培训视频、学习路径、交互式教程和精选播放列表。

如需了解更多信息,请访问 http://oreilly.com/safari

联系我们

请把对本书的评价和问题发给出版社。

美国:

  O'Reilly Media, Inc.

  1005 Gravenstein Highway North

  Sebastopol, CA 95472

中国:

  北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035)

  奥莱利技术咨询(北京)有限公司

O'Reilly 的每一本书都有专属网页,你可以在那儿找到本书的相关信息,包括勘误表、示例代码以及其他信息 1。本书的网站地址是:http://www.oreilly.com/catalog/0636920047124

1读者可访问本书图灵社区页面(http://www.ituring.com.cn/book/2452)下载示例代码并提交中文版勘误。——编者注

对于本书的评论和技术性问题,请发送电子邮件到:

  bookquestions@oreilly.com

要了解更多 O'Reilly 图书、培训课程、会议和新闻的信息,请访问以下网站:

  http://www.oreilly.com

我们在 Facebook 的地址如下:

  http://facebook.com/oreilly

请关注我们的 Twitter 动态:

  http://twitter.com/oreillymedia

我们的 YouTube 视频地址如下:

  http://www.youtube.com/oreillymedia

致谢

人类做的任何事都是以其他人的成果为基础的,本书也不例外。感谢 O'Reilly 公司的编辑。首先是 Nan Barber,她对我创作本书给予了极大的支持。还有 Ally MacDonald,她启发我以模块化方式来写这套书,而且帮助我克服了项目初期的困难。

本书的技术审校阵容可谓豪华。其中很多人都来自 TC39,也就是制定 JavaScript 标准的委员会,他们抽出宝贵的时间进行审阅,使本书的内容有了保证。Mathias Bynens(曾任职于 Opera)帮忙校对了本书中与 Unicode 标准相关的所有内容,确保了书中代码示例的高度一致。Kent C. Dodds(TC39 成员,PayPal)创造性地进行了视频评审,指出了一些问题,进行了质量把关。Jordan Harband(TC39 成员,Airbnb)对书中讨论的很多 JavaScript 特性给出了技术意见。Alex Russell(TC39 成员,Google)帮助厘清了 JavaScript 的历史及有关标准主体的内容。Ingvar Stepanyan(Cloudflare)也是一位从代码中挑错的高手,帮我纠正了与规范底层细节相关的错误。Brian Terlson(TC39 编辑,Microsoft)也就 TC39 的时间安排和相关细节提供了解答。Rod Vagg(Node.js 项目)对本书代码示例的风格统一和更贴近主题提供了帮助。

Brendan Eich(TC39 成员,Brave CEO)分享了关于 JavaScript 早期和 TC39 的很多珍闻,这为第一章的内容打下了基础。如果没有他,也就不会有你手中这本书。

最后,我要感谢我的妻子 Marianela,感谢她在我撰写本书期间做出的牺牲和对我的宽容。Marian,没有你,我不可能完成本书!

电子书

扫描如下二维码,即可购买本书电子版。

{%}

目录