2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

《探索 ES6》书评与作者采访

  • 2015-07-12
  • 本文字数:2073 字

    阅读完需:约 7 分钟

由 Axel Rauschmayer 编著的 **《探索ES6》** 是对 JavaScript 最新特性的一次深入探讨,本文包含了对作者所进行的一次简短的访谈内容。

Axel Rauschmayer 博士的著作《探索 ES6:升级至 JavaScript 的下一个版本》(Exploring ES6: Upgrade to the next version of JavaScript)是 ECMAScript 2015 中新引入特性的一份全面指南,读者还可以参考配套的代码示例。作者假设读者已经熟悉 JavaScript 的特性,或是能够通过阅读他的另一本著作《Speaking JavaScript》很快地上手,后者对于 ES5 及之前的语言特性进行了深入的讲解。

《探索 ES6一书首先对于 JavaScript 的历史进行了简单的回顾,包括它的版本变迁、标准化组织、设计过程、以及这门语言当下的目标:让 JavaScript 成为一门更优秀的语言、具有更强的互操作性,同时又保持对之前版本的兼容。作者注意到了这一点:ECMA 组织最终决定让 JavaScript 保持完整的向后兼容性,以避免“破坏 web”,他们要求与之相关者保持继续运行旧版本的代码的能力,并保证新引入的特性不会与之前的代码产生冲突。本书接下来的部分着重强调了将 ES6 代码转译(即编译)为 ES5 代码的一系列重要工具,包括包管理、模块管理、lint 工具、shim、polyfill、解析器和 REPL 等等。

在关于一致性方面的介绍之后,Rauschmayer 开始进入 ES6 的新特性,他首先对这些新特性进行了简短的描述,并列举了示例代码,然后对它们进行了深入的探讨。在某些地方也会解释一下为什么 ECMA 会决定以这种方式设计这门语言。其中的某些特性,例如类与模块已经由各种类库提供了对应的功能,但其它的一些特性都是全新的,包括 promise、生成器(generator)或代理(proxy)。以下是作者在本书中所涵盖的一些特性(尚有部分内容并未列举在下表中):

  • 数据:数值、Math 方法、新的 string 方法、模板字符串、符号(symbol)、范围(scoping)、解构(destructuring)
  • 模块化:箭头函数(arrow function)、类、模块
  • 集合:新的数组特性、Map、Set、生成器
  • 其它特性:异步编程、Unicode、代理

本书的末尾部分提供了大量的代码风格提示:例如何时使用常量、let 或箭头函数,避免混用默认导出(export)与命名导出、格式化生成器、以及推荐使用类等等。

我们对作者进行了一次采访,以了解他在相关主题方面的看法。

InfoQES5 如今已经在主流的 JavaScript 平台上得到了完整的实现,但目前还没有任何平台能够完整地实现所有的 ES6 特性,并且在每个平台上已实现的特性可能各不相同。如果说还没有一个特性已经得到所有主流平台的支持,web 开发者们又该如何编写 ES6 代码呢?你对此有什么建议?

AR首个完全支持 ECMAScript 6 的 JavaScript 引擎恐怕要到 2016 年才会出现,在那之前,唯一合理的方式就是将 ES6 编译为 ES5 再部署编译后的代码。等到了 2016 年之后,你就可以检查一下每个引擎的情况,看它是否已经支持了 ES6(或者只检查一下你所使用的那部分特性)。对于已经支持的特性,可以在代码中加载原生的版本,否则依然要使用编译后的 ES5 版本。

InfoQ根据之前 ES5 的采用情况来看,你认为主流浏览器大概需要多久才能够完整地实现 ES6?是一年、两年还是五年?

AR这一点真的很难说,因为我不清楚微软与苹果公司的日程计划。在 status.modern.ie 网站上,微软仍然将某些核心特性列为“考虑中”,而苹果则依然保持一贯的神秘感。但 Mozilla 与 Google 在这方面进展良好,大概在 2015 年末或 2016 年初就会完全支持 ES6 了。

InfoQ你对于 One JavaScript 这种思想有什么看法?对于 web 的发展来说,这种方式是否比强制版本化的做法更好?至少后者承诺能够带来更整洁的语言。

ARDavid Herman 将 ES6 避免版本化问题的做法称为“One JavaScript”。大体上说,它表示 ES6 是 ES5 的一个超集,也就是说 ES6 是 100% 向后兼容的,这也避免了将 JavaScript 分割为 ES5(及更早版本)和 ES6(及之后的版本)两个阵营。这种方式保持了 JavaScript 引擎的简单性,将 ES5 代码库迁移到 ES6 也变得十分简单,因为它其实就是 ES6 的一个有效子集。One JavaScript 方式唯一的缺点就是限制了你对这门语言进行清理的机会:你永远无法移除特性,只能添加新的特性。

InfoQ有没有哪些特性是你希望出现,却尚未包括在 ES6 中的,或者说有哪些特性是你希望以另一种方式进行标准化的呢?

ARES6 本身已经非常丰富了。虽然我可能会稍微改变一下类的实现,但能够在 ES6 中看到它已经很欣慰了。从长远一点的观点来看,我希望看到特质(trait)(或 mixin)的出现,并希望标准库中的内容能够更丰富一些(尤其是关于迭代操作的工具方法)。

InfoQ本书中的某些章节还没有完成,你是否已计划好它们的完成时间了呢?

AR:我已经完成了我认为最重要的所有章节,我会尽量在接下来几个月中完成剩余的章节。

《探索ES6》的在线版本包括免费的HTML 版本,以及对应某个推荐价格的PDF、ePub 或MOBI 格式的电子书。

ES6 刚刚由 ECMA 国际投票通过,可以在《ECMAScript 2015 正式发布》这篇帖子中找到关于此事的更多细节。

查看英文原文 Exploring ES6: Book Introduction and Author Interview

2015-07-12 08:285710
用户头像

发布了 428 篇内容, 共 198.6 次阅读, 收获喜欢 39 次。

关注

评论

发布
暂无评论
发现更多内容

springboot整合redis五种数据结构API

刘大猫

人工智能 redis 云计算 算法 物联网

云服务模式进化论:企业云战略的致命误区,从IaaS到FaaS的死亡之旅!

六边形架构

云计算 IaaS PaaS SaaS Faas

一个基于 .NET 8 + DDD 搭建的模块化微服务框架

追逐时光者

.net

微软MS17-012安全更新详解:六大Windows漏洞修复指南

qife122

网络安全 Windows安全

规范驱动开发:用 AI 写生产级代码的完整指南

程序猿DD

vibe coding spec coding

“看得见”的工厂—MES数据采集技术全景图

万界星空科技

mes 免费mes 万界星空科技mes 制造业工厂 #数据采集

BOE(京东方)荣获第四届“纪念彼得·德鲁克中国管理奖” 创新管理模式获权威认可

爱极客侠

Vibe Coding 实战!花了两天时间,让 AI 写了一个富文本渲染引擎!

非专业程序员Ping

swift ios 开发 vibe coding vibecoding Claude Code

华为云沃土代金券&Token服务,送你2.5亿免费Tokens

YG科技

LED显示屏节能技术有哪些?

Dylan

LED LED display LED显示屏 户外LED显示屏 LED屏幕

2025年量子计算与通信技术国际学术会议(ICQCT 2025)

搞科研的小刘

量子计算

你的代码正在腐烂!你的团队正走在死亡螺旋上:技术债务积累的5个危险信号!

六边形架构

自动化 代码规范 技术债务 系统优化 系统重构

深化产教融合,共育数字人才!华为云HCSD校园沙龙活动走进湖北工程学院

华为云开发者联盟

牡丹江二级等保测评周期解析:流程、时间与关键节点

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

第五届教育,语言与艺术国际学术会议(ICELA 2025)

搞科研的小刘

教育语言艺术

黑龙江三级等保测评费用解析:2025年市场价与关键影响因素

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

第八届机械工程与智能制造国际会议(WCMEIM 2025)

搞科研的小刘

工程机械

5 倍性能优于开源版,火山 Milvus 集成 DiskANN+RaBitQ

北京中暄互动广告传媒有限公司

AI智能体 - 反思模式

Hernon AI

AI开发 AI 智能体 AI应用开发 AI开发框架

HarmonyOS preview 预览文件 Kit 的入门讲解

万少

HarmonyOS HarmonyOS NEXT

大数据-151 Apache Druid 集群落地 [上篇] MySQL 元数据 + HDFS 深存与低配调优

武子康

Java 大数据 分布式 Druid Apache Druid

绿电直连平台层核心能力:数据中台构建与算力协同技术

西格电力

绿电直连 可再生能源发电 低碳经济 能源解决方案 低碳节能

2025十大数据资产管理平台排行榜:技术革新与选型指南

科技经济

上海伙伴+华为坤灵,靠什么把申城中小企业智能化做成好生意?

脑极体

AI

Agentic AI基础设施实践经验系列(七):可观测性在Agent应用的挑战与实践

亚马逊云科技 (Amazon Web Services)

人工智能

私有部署|基于Ansible的运维自动化作业平台

37丫37

全域释放活力,增长质效兼收——2025年“双11”大促第一周期观察

易观分析

数字经济 双11 消费 周期观察

87%的商务邮件都在浪费时间:一条AI指令如何重塑企业沟通效率

HuiZhuDev

效率工具 数字化转型 企业管理 AI指令 商务沟通

网站减碳优化指南:最小化环境影响的实用策略

qife122

网站优化 可持续发展

第二届人工智能、数字媒体技术与交互设计国际学术会议(ICADI 2025)

搞科研的小刘

人工智能

哈尔滨等保整改方案:基于2025年新规的精准落地策略

等保测评

网络安全 信息安全 数据安全 黑龙江等保测评 哈尔滨等保测评

《探索ES6》书评与作者采访_JavaScript_Abel Avram_InfoQ精选文章