ECMAScript 与 JavaScript
ECMAScript 也是一种脚本语言,通常缩写为 ES,通常会把它看作是 JavaScript 语言的标准化标准。实际上 JavaScript 是 ECMAScript 的扩大语言,因为在 ECMAScript 只是提供了最根本的语法。艰深点来说,就是约定了咱们的代码要如何编写,比方咱们要怎么定义变量和函数,要怎么定义分支和循环的语句。ECMAScript 只是停留在语言层面,并不能用来在实现理论性能开发。
而咱们常常应用的 JavaScript 实现了 ECMAScript 语言的规范,并且在这个根底之上实现了一些扩大,使得咱们能够在浏览器环境外面操作 DOM 和 BOM,能够在 Node 环境外面操作读写文件的操作。
总的来说呢,在浏览器环境的 JavaScript 蕴含了 ECMAScript 和 Web APIs:
在 Node 环境中所应用的 JavaScript 蕴含 ECMAScript 和 Node APIs:
所以说,JavaScript 语言自身指的就是 ECMAScript。
ECMAScript 2015
随着这些年 Web 这种利用模式深刻倒退,从 2015 年开始 ECMAScript 放弃每年一个版本的迭代。随同着这些新版本的迭代,很多新个性陆续呈现,这就导致 JavaScript 这门语言自身也就变得越来越高级了。
名称 | 规范版本 | 发行工夫 |
---|---|---|
ECMAScript 2019(ES2019) | 10 | 2019 年 6 月 |
ECMAScript 2018(ES2018) | 9 | 2018 年 6 月 |
ECMAScript 2017(ES2017) | 8 | 2017 年 6 月 |
ECMAScript 2016(ES2016) | 7 | 2016 年 6 月 |
ECMAScript 2015(ES2015) | 6 | 2015 年 6 月 |
ECMAScript 5.1(ES5.1) | 5.1 | 2011 年 6 月 |
ECMAScript 5(ES5) | 5 | 2009 年 12 月 |
ECMAScript 4(ES4) | 4 | 被放弃 |
ECMAScript 3(ES3) | 3 | 1999 年 12 月 |
ECMAScript 2(ES2) | 2 | 1998 年 6 月 |
ECMAScript 1(ES1) | 1 | 1997 年 6 月 |
在 ECMAScript 版本迭代更新过程中,其中 ES2015 须要独自去理解的内容有很多,因为在这个版本中绝对比拟非凡,相较于上一个版本 ES5 公布之后经验了近 6 年的工夫才被齐全地标准化,而且这 6 年工夫也是 Web 倒退的黄金时间。所以说,在这一个版本当中蕴含很多颠覆式的新性能。
也就是因为 ES2015 迭代的工夫太长导致公布的内容过多,所以从之后的版本开始 ES 的发布会变得更加频繁,也更合乎当下互联网小步快跑的精力。而且从 ES2015 过后 ECMAScript 就决定不再依照版本号去命名,而是应用发行年份命名。因为这个决定是在 ES2015 公布的过程中决定的,所以过后很多人就习惯了把 ES2015 称为 ES6。
随着 ECMAScript 开始巩固迭代倒退,市面上支流的运行环境也都纷纷跟进,曾经开始逐渐反对这些最新的个性。所以说,对于咱们这些应用 JavaScript 的开发者而言,学习这些新个性就尤为重要。
当初有很多开发者习惯应用 ES6 泛指 ECMAScript 的所有新个性。比方有些材料外面会这样写“应用 ES6 的
async
和await
”,而实际上async
和await
函数是 ES2017 中制订的规范。
ES2015 的变动能够演绎为 4 类:
- 解决原有语法上的一些问题或者有余,比方
let
和const
提供的块级作用域 - 对原有语法进行加强,使之变得更加便捷、易用,比方解构、开展、参数默认值和模板字符串等等
- 全新的对象、全新的办法、全新的性能,比方
Promise
和Proxy
,以及Object
的assign()
办法之类的 - 全新的数据类型和数据结构,比方
Symbol
、Set
和Map
等等