发展历史:

  • 1995年,网景工程师Brendan Eich(布兰登·艾奇)花了10天时间设计了JavaScript语言,1996年微软发布了JScript,同时拉开了Navigator和Internet Explorer浏览器大战的序幕(到2002年IE完胜,占据全世界96%的市场份额);
  • 为了让各大浏览器统一编程规范,1997年6月ECMA(欧洲计算机制造联合会)以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262,从此浏览器厂商都是按照这个规范来开发自己的浏览器产品;
  • 1999年12月ES3发布,到2011年6月ES5发布(2007年的ES4夭折:改动太大),ES3占据了10年历程,也是JS语言的基础。2015年6月ES6发布(但是由于之后规定每年发布一个新的版本,所以后改名ES2015),2016年6月对2015版本增强的2016版本发布,此后相继有ES2017、ES2018…

  • ES2015(ES6):let/const、解构赋值、数组/对象等方法扩展、Symbol、Set/Map、Proxy、Reflect、Promise、Iterator(for of)、Generator、Class、ES6Module…
  • ES2016(ES7):Array.prototype.includes、指数运算符(a**b)…
  • ES2017(ES8):async/await、Promise.prototype.finally、Object.values/entries/getOwnPropertyDescriptors、字符串填充 padStart和padEnd、SharedArrayBuffer共享内存、Atomic原子操作…
  • ES2018(ES9):对象的拓展运算符、正则表达式上的一些升级、异步遍历器…
  • ES2019(ES10):String.prototype.trimStart/trimEnd、Object.fromEntries、Array.prototype.flat/flatMap、catch的参数改为可选、Symbol.description、JSON Superset超集、stringify加强格式转化、Array.prototype.sort更加稳定、Function.prototype.toString重新修订…
  • ES2020(ES11):String.prototype.matchAll、import() 、BigInt、Promise.allSettled、globalThis、可选链、空值合并运算符、export * as ns from “mod”、for-in机制完善…
  • ES2021(ES12):String.prototype.replaceAll、Promise.any、WeakRefs、??=、||=、&&=、Numeric separators(数字分隔符)..