ECMAScript 也是一種腳本語言,一般縮寫爲 ES,一般會把它看做是 JavaScript 語言的標準化規範。實際上 JavaScript 是 ECMAScript 的擴展語言,由於在 ECMAScript 只是提供了最基本的語法。通俗點來講,就是約定了咱們的代碼要如何編寫,好比咱們要怎麼定義變量和函數,要怎麼定義分支和循環的語句。ECMAScript 只是停留在語言層面,並不能用來在完成實際功能開發。瀏覽器
而咱們常常使用的 JavaScript 實現了 ECMAScript 語言的標準,而且在這個基礎之上實現了一些擴展,使得咱們能夠在瀏覽器環境裏面操做 DOM 和 BOM,能夠在 Node 環境裏面操做讀寫文件的操做。數據結構
總的來講呢,在瀏覽器環境的 JavaScript 包含了 ECMAScript 和 Web APIs:async
在 Node 環境中所使用的 JavaScript 包含 ECMAScript 和 Node APIs:函數
因此說,JavaScript 語言自己指的就是 ECMAScript。學習
隨着這些年 Web 這種應用模式深刻發展,從 2015 年開始 ECMAScript 保持每一年一個版本的迭代。伴隨着這些新版本的迭代,不少新特性陸續出現,這就致使 JavaScript 這門語言自己也就變得愈來愈高級了。spa
名稱 | 標準版本 | 發行時間 |
---|---|---|
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 發展的黃金時間。因此說,在這一個版本當中包含不少顛覆式的新功能。code
也就是由於 ES2015 迭代的時間太長致使發佈的內容過多,因此從以後的版本開始 ES 的發佈會變得更加頻繁,也更符合當下互聯網小步快跑的精神。並且從 ES2015 事後 ECMAScript 就決定再也不按照版本號去命名,而是使用發行年份命名。因爲這個決定是在 ES2015 發佈的過程當中決定的,因此當時不少人就習慣了把 ES2015 稱爲 ES6。對象
隨着 ECMAScript 開始穩固迭代發展,市面上主流的運行環境也都紛紛跟進,已經開始逐步支持這些最新的特性。因此說,對於咱們這些使用 JavaScript 的開發者而言,學習這些新特性就尤其重要。blog
如今有不少開發者習慣使用 ES6 泛指 ECMAScript 的全部新特性。好比有些資料裏面會這樣寫「使用 ES6 的async
和await
」,而實際上async
和await
函數是 ES2017 中制定的標準。
ES2015 的變化能夠概括爲 4 類:ip
let
和 const
提供的塊級做用域Promise
和 Proxy
,以及 Object
的 assign()
方法之類的Symbol
、Set
和 Map
等等