前言
目录
请支持本书:购买 (PDF, EPUB, MOBI)捐赠
(广告,请勿屏蔽。)

前言

边缘情况!作为 ES6 规范的项目编辑,我的工作就是处理各种边缘情况。与大多数软件一样,编程语言功能的设计通常是由特定的用例驱动的。但程序员可以而且经常会以超出这些原始用例范围的新颖方式使用语言功能。此外,任何语言功能都不是孤立存在的。每个功能都可能与其他所有功能交互。这些意外的使用和功能交互就是边缘情况的领域。

例如,考虑一个函数,它的参数默认值初始化表达式使用 eval 函数首先声明一个与函数体中声明的局部变量同名的局部变量,然后返回一个引用该名称的箭头函数作为参数值。如果函数体中的代码访问参数值并调用箭头函数会发生什么?访问的是哪个变量?是否应该检测并报告错误?在设计 ES6 时,正是像这样的边缘情况让我夜不能寐。

一个好的语言设计至少必须考虑这些边缘情况。对于将有多种实现的、广泛流行的语言规范,必须确定所有边缘情况下的行为。否则,不同的语言实现将以不同的方式处理边缘情况,程序将无法在任何地方都以相同的方式工作。

如果你真的想理解 ES6,你必须理解每个功能是如何工作的,即使是在处理不寻常的情况和边缘情况时。Axel Rauschmayer 的《Exploring ES6》与其他书籍的不同之处在于,它真正关心 ECMAScript 的内部工作原理。它不仅仅描述了你可能已经理解的常见用例。它深入探讨了语义,并在必要时深入研究了边缘情况。它解释了功能为何以这种方式工作,以及如何在实际代码中使用它们。掌握本书的内容,你将成为一名 ES6 专家。

Allen Wirfs-Brock
ECMAScript 2015 (ES6) 规范编辑

下一页:前言