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

简介: 参透ECMAScript标准,随一代宗师参详JavaScript精进之路。每日搜罗最具权威专业书籍,更多图书请关注“每日读本书”。

编辑推荐

√ 不识老尼,枉为前端攻城狮,其成名作《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代码的初学者,读者们需要对这门语言的基础知识有一定的理解,这样才能发挥本书的最大效用。


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

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

相关文章
|
Java 数据安全/隐私保护
康复中心管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
康复中心管理系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
326 1
解决删除文件时出现“该项目不在XX中,请确认该项目的位置然后重试”的提示
近期在删除文件夹的时候,出现了这个“该项目不在XX中,请确认该项目的位置然后重试”的提示,实际上这个文件(夹)就在那里,死活都删不掉,win10系统重启之后删除都不行的
11619 0
|
4月前
阿里云服务器带宽收费价格解析:1M、3M、5M、10M带宽价格参考
阿里云服务器1M、3M、5M、10M宽带需要多少钱?单说阿里云服务器宽带多少钱,而不确定云服务器实例规格及cpu和内存配置的话,是没办法具体说多少钱的,因为云服务器的价格受很多因素影响。本文将详细解析阿里云服务器在1M、3M、5M、10M不同带宽下的价格差异,以供您参考和选择。
1693 3
|
网络协议 Unix Linux
# 2个类轻松构建高效Socket通信库
本文介绍了一种通过两个类`EpollEventHandler`和`IEpollEvent`构建高效Socket通信库的方法。该库支持TCP、UDP和Unix域套接字,采用I/O多路复用技术(如epoll),提升并发处理能力。通过抽象基类和具体事件类的设计,简化了API使用,便于开发者快速上手。文章还提供了服务端与客户端的实例代码,展示其在实际项目中的应用效果。此Socket库适应嵌入式环境,功能定制性强,有助于减少外部依赖并提升维护效率。
338 96
# 2个类轻松构建高效Socket通信库
|
缓存 JavaScript 前端开发
【Vue面试题七】、SPA (单页面) 首屏加载速度慢怎么解决?
这篇文章探讨了单页面应用(SPA)首屏加载速度慢的问题,并提供了多种解决方案,包括减小入口文件体积、静态资源本地缓存、UI框架按需加载、图片资源压缩、组件重复打包、开启GZip压缩和使用服务端渲染(SSR),以优化资源加载和页面渲染,改善用户体验。
【Vue面试题七】、SPA (单页面) 首屏加载速度慢怎么解决?
|
编解码 开发工具 Python
Intellij IDEA、 Pycharm 格式化换行,竖线修改 最大 分隔 线
Intellij IDEA、 Pycharm 格式化换行,竖线修改 最大 分隔 线
373 1
|
前端开发 JavaScript 开发工具
前端开发最佳实践与工具推荐
【7月更文挑战第22天】前端开发是一个充满挑战和机遇的领域,掌握最佳实践和高效工具是提升开发效率、保证项目质量的关键。通过遵循版本控制、构建和部署、编写高质量代码、性能优化和安全性等最佳实践,并结合代码编辑工具、版本控制工具、包管理工具、构建工具、调试工具等实用工具,我们可以更好地完成前端开发任务,提升个人和团队的竞争力。
|
监控 网络协议 网络架构
|
流计算
电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)【6节点 9节点 14节点 26节点 30节点 57节点】(Matlab代码实现)
电力系统潮流计算(牛顿-拉夫逊法、高斯-赛德尔法、快速解耦法)【6节点 9节点 14节点 26节点 30节点 57节点】(Matlab代码实现)
601 0
|
消息中间件 存储 缓存
RabbitMQ与Kafka选型对比(一)
RabbitMQ与Kafka选型对比(一)
5023 0
RabbitMQ与Kafka选型对比(一)

热门文章

最新文章