ECMAScript6详解
ECMAScript 历史
我们首先来看 ECMA 是什么。ECMA ,读音类似"埃科妈",是欧洲计算机制造商协会 (European Computer Manufacturers Association)的简称,是一家国际性会员制度的信息和电信标准组织。1994年之后,由于组织的标准牵涉到很多其他国家,为了体现其国际性,更名为 Ecma 国际(Ecma International),因此Ecma 就不再是首字母缩略字了。
1995 年,著名的网景公司(Netscape)的 Brendan Eich 开发了一种脚本语言,最初命名为 Mocha,后来改名为LiveScript,最后为了蹭当时火热的 Java 热度重命名为了 JavaScript。
了解了 Ecma 国际和 JavaScript,就方便了解 ECMAScript 了,ECMAScript 是一种由 Ecma 国际在标准ECMA-262 中定义的 脚本语言 规范。这种语言在往往被称为 JavaScript 或 JScript ,但实际上 JavaScript和 JScript 是 ECMA-262 标准的实现和扩展。
神秘的 ECMA-262
上文提到了第一个神秘代码 ECMA-262 ,ECMA-262 到底是什么呢?原来 Ecma 国际的标准,都会以Ecma-Number 命名,ECMA-262 就是 ECMA 262 号标准,具体就是指 ECMAScript遵照的标准。1996 年 11 月,网景公司将 JavaScript 提交给 Ecma 国际进行标准化。ECMA-262 的第一个版本于 1997 年 6 月被 Ecma 国际采纳。
尽管 JavaScript 和 JScript 与 ECMAScript 兼容,但包含超出 ECMAScript 的功能。
我们如何查看最新最全的 Ecma 标准呢,可以查看 Ecma 国际官网的 Standards 。截止到 2021 年 4 月,最新的 Ecma 标准已经到了 ECMA-423。
1.ECMAScript6 简介
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。
它的目标,是使 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。
ES6 引入了许多新的语法特性和 API,例如:
- 类(class)和继承(inheritance)
- 模块(module)和导入(import)
- 箭头函数(arrow function)和默认参数(default parameter)
- 解构赋值(destructuring assignment)和展开运算符(spread operator)
- Promise 和异步函数(async function)
- 生成器(generator)和迭代器(iterator)
- 代理(proxy)和反射(reflect)
- 新的数据类型和数据结构,如 Symbol、Set、Map、WeakSet、WeakMap 等
1.1 ECMAScript 和 JavaScript 的关系
- 要讲清楚这个问题,需要回顾历史。
- 1996 年 11 月,JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织ECMA,希望这种语言能够成为国际标准。
- ECMA 发布 262 号标准文件(ECMA-262)的第一版,规定了浏览器脚本语言的标准,并将这种语言称为ECMAScript,这个版本就是 1.0 版。
- 因此,ECMAScript (宪法)和 JavaScript(律师) 的关系是,前者是后者的规格,后者是前者的一种实现。
1.2 ES6 与 ECMAScript 2015 的关系
-
2011 年,ECMAScript 5.1 版发布后,就开始制定 6.0 版了。因此,ES6 这个词的原意,就是指 JavaScript语言的下一个版本。
-
ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了ES2015、ES2016、ES2017 等等
结语
授人以鱼,不如授人以渔,希望通过本文追根溯源,带领同学们走进 ECMAScript 的世界,ES 神秘代码不再神秘,ES 新特性不再彷徨。
每个版本最新的特性请参考 版本新特性
ECMA官网请参考 ECMA-GitHub官网
语法学习请参考 ECMA中文教程