1

ECMAScript 与 JavaScript

ECMAScript 也是一种脚本语言,通常缩写为 ES,通常会把它看作是 JavaScript 语言的标准化规范。实际上 JavaScript 是 ECMAScript 的扩展语言,因为在 ECMAScript 只是提供了最基本的语法。通俗点来说,就是约定了我们的代码要如何编写,比如我们要怎么定义变量和函数,要怎么定义分支和循环的语句。ECMAScript 只是停留在语言层面,并不能用来在完成实际功能开发。

而我们经常使用的 JavaScript 实现了 ECMAScript 语言的标准,并且在这个基础之上实现了一些扩展,使得我们可以在浏览器环境里面操作 DOM 和 BOM,可以在 Node 环境里面操作读写文件的操作。

总的来说呢,在浏览器环境的 JavaScript 包含了 ECMAScript 和 Web APIs:

1.1.1-01.png

在 Node 环境中所使用的 JavaScript 包含 ECMAScript 和 Node APIs:

1.1.1-02.png

所以说,JavaScript 语言本身指的就是 ECMAScript。

ECMAScript 2015

随着这些年 Web 这种应用模式深入发展,从 2015 年开始 ECMAScript 保持每年一个版本的迭代。伴随着这些新版本的迭代,很多新特性陆续出现,这就导致 JavaScript 这门语言本身也就变得越来越高级了。

名称标准版本发行时间
ECMAScript 2019(ES2019)102019 年 6 月
ECMAScript 2018(ES2018)92018 年 6 月
ECMAScript 2017(ES2017)82017 年 6 月
ECMAScript 2016(ES2016)72016 年 6 月
ECMAScript 2015(ES2015)62015 年 6 月
ECMAScript 5.1(ES5.1)5.12011 年 6 月
ECMAScript 5(ES5)52009 年 12 月
ECMAScript 4(ES4)4被放弃
ECMAScript 3(ES3)31999 年 12 月
ECMAScript 2(ES2)21998 年 6 月
ECMAScript 1(ES1)11997 年 6 月

在 ECMAScript 版本迭代更新过程中,其中 ES2015 需要单独去了解的内容有很多,因为在这个版本中相对比较特殊,相较于上一个版本 ES5 发布之后经历了近 6 年的时间才被完全地标准化,而且这 6 年时间也是 Web 发展的黄金时间。所以说,在这一个版本当中包含很多颠覆式的新功能。

也就是因为 ES2015 迭代的时间太长导致发布的内容过多,所以从之后的版本开始 ES 的发布会变得更加频繁,也更符合当下互联网小步快跑的精神。而且从 ES2015 过后 ECMAScript 就决定不再按照版本号去命名,而是使用发行年份命名。由于这个决定是在 ES2015 发布的过程中决定的,所以当时很多人就习惯了把 ES2015 称为 ES6。

随着 ECMAScript 开始稳固迭代发展,市面上主流的运行环境也都纷纷跟进,已经开始逐步支持这些最新的特性。所以说,对于我们这些使用 JavaScript 的开发者而言,学习这些新特性就尤为重要。

现在有很多开发者习惯使用 ES6 泛指 ECMAScript 的所有新特性。比如有些资料里面会这样写“使用 ES6 的 asyncawait”,而实际上 asyncawait 函数是 ES2017 中制定的标准。

ES2015 的变化可以归纳为 4 类:

  • 解决原有语法上的一些问题或者不足,比如 letconst 提供的块级作用域
  • 对原有语法进行增强,使之变得更加便捷、易用,比如解构、展开、参数默认值和模板字符串等等
  • 全新的对象、全新的方法、全新的功能,比如 PromiseProxy,以及 Objectassign() 方法之类的
  • 全新的数据类型和数据结构,比如 SymbolSetMap 等等

不想成熟的大叔
882 声望526 粉丝

为学习前端开发不再枯燥、困难和迷茫而努力。