JavaScript 版本
JavaScript 是 Brendan Eich 于 1995 年发明的,并于 1997 年成为 ECMA 标准。
ECMAScript 是该语言的官方名称。
ECMAScript 版本被缩写为 ES1、ES2、ES3、ES5 和 ES6。
自 2016 年以来,版本命名方式改为年份(ECMAScript 2016、2017、2018、2019、2020)。
ECMAScript 版本
版本 | 官方名称 | 描述 |
---|---|---|
ES1 | ECMAScript 1 (1997) | 第一版 |
ES2 | ECMAScript 2 (1998) | 编辑性改动 |
ES3 | ECMAScript 3 (1999) | 添加了正则表达式 添加了 try/catch 添加了 switch 添加了 do-while |
ES4 | ECMAScript 4 | 从未发布 |
ES5 | ECMAScript 5 (2009) 阅读更多 |
添加了“严格模式” 添加了 JSON 支持 添加了 String.trim() 添加了 Array.isArray() 添加了数组迭代方法 对象字面量允许尾随逗号 |
ES6 | ECMAScript 2015 阅读更多 |
添加了 let 和 const 添加了默认参数值 添加了 Array.find() 添加了 Array.findIndex() |
ECMAScript 2016 阅读更多 |
添加了指数运算符 (**) 添加了 Array.includes() |
|
ECMAScript 2017 阅读更多 | 添加了字符串填充 添加了 Object.entries() 添加了 Object.values() 添加了 async 函数 添加了共享内存 函数参数允许尾随逗号 |
|
ECMAScript 2018 阅读更多 | 添加了 rest/spread 属性 添加了异步迭代 添加了 Promise.finally() 对 RegExp 的补充 |
|
ECMAScript 2019 阅读更多 | String.trimStart() String.trimEnd() Array.flat() Object.fromEntries 可选的 catch 绑定 |
|
ECMAScript 2020 阅读更多 | 空值合并运算符 (??) |
本教程涵盖了所有 JavaScript 版本
- 原始 JavaScript ES1 ES2 ES3 (1997-1999)
- 第一次主要修订 ES5 (2009)
- 第二次修订 ES6 (2015)
- 年度更新 (2016, 2017, 2018, 2019, 2020)
浏览器支持
ECMAScript 1 - 6 在所有现代浏览器中都得到完全支持。
ES5 (2009) 的浏览器支持
浏览器 | 版本 | 起始日期 |
---|---|---|
Chrome | 23 | 2012 年 11 月 |
Firefox | 21 | 2013 年 5 月 |
IE | 9* | 2011 年 3 月 |
IE / Edge | 10 | 2012 年 9 月 |
Safari | 6 | 2012 年 7 月 |
Opera | 15 | 2013 年 7 月 |
* Internet Explorer 9 不支持 ECMAScript 5 的“use strict”。
ES6 (2015) 的浏览器支持
浏览器 | 版本 | Date |
---|---|---|
Chrome | 51 | 2016 年 5 月 |
Firefox | 52 | 2017 年 3 月 |
Edge | 14 | 2016 年 8 月 |
Safari | 10 | 2016 年 9 月 |
Opera | 38 | 2016 年 6 月 |
Internet Explorer 不支持 ECMAScript 2015。
ECMAScript 2016 的浏览器支持
浏览器 | 版本 | Date |
---|---|---|
Chrome | 52 | 2016 年 7 月 |
Firefox | 54 | 2017 年 6 月 |
Edge | 14 | 2016 年 8 月 |
Safari | 10.1 | 2017 年 3 月 |
Opera | 39 | 2016 年 8 月 |