起源
网景公司开发,起初命名为Mocha
, 后来改名LiveScript
,不久为了趁java
的热度,改成了Javascript
浏览器大战
微软看到了红利,开发了IE,推出了JScript
和网景竞争。因为没有语言标准,大家都添加很多私有的专属对象,使得网页开发者非常的痛苦。
标准化
1996年,网景公司向ECMA(欧洲计算机制造商协会) 提交语言标准。1997年第一个ECMAScript
标准规范退出。
组成
javascript
基本上由ECMAScript
规范(语言的语法和基本对象)以及DOM(网页操作接口)和BOM(浏览器交互接口)组成。
ECMAscript 版本
版本 | 发表日期 | 与前版本的差异 |
---|---|---|
1 | 1997年6月 | 首版 |
2 | 1998年6月 | 格式修正,以使得其形式与ISO/IEC16262国际标准一致 |
3 | 1999年12月 | 强大的正则表达式,更好的词法作用域链处理,新的控制指令,异常处理,错误定义更加明确,数据输出的格式化及其它改变 |
4 | 放弃 | 由于关于语言的复杂性出现分歧,第4版本被放弃,其中的部分成为了第5版本及Harmony的基础 |
5 | 2009年12月 | 新增“严格模式(strict mode)”,一个子集用作提供更彻底的错误检查,以避免结构出错。澄清了许多第3版本的模糊规范,并适应了与规范不一致的真实世界实现的行为。增加了部分新功能,如getters及setters,支持JSON以及在对象属性上更完整的反射[4][5][6][7][8] |
5.1 | 2011年6月 | ECMAScript标5.1版形式上完全一致于国际标准ISO/IEC 16262:2011。 |
6 | 2015年6月 | ECMAScript 2015(ES2015),第 6 版,最早被称作是 ECMAScript 6(ES6),添加了类和模块的语法,其他特性包括迭代器,Python风格的生成器和生成器表达式,箭头函数,二进制数据,静态类型数组,集合(maps,sets 和 weak maps),promise,reflection 和 proxies。作为最早的 ECMAScript Harmony 版本,也被叫做ES6 Harmony。 |
7 | 2016年6月 | ECMAScript 2016(ES2016),第 7 版,多个新的概念和语言特性[9] |
8 | 2017年6月 | ECMAScript 2017(ES2017),第 8 版,多个新的概念和语言特性[10] |
9 | 2018年6月 | ECMAScript 2018 (ES2018),第 9 版,包含了异步循环,生成器,新的正则表达式特性和 rest/spread 语法。 |
10 | 2019年6月 | ECMAScript 2019 (ES2019),第 10 版 |
总结:
- 一般前端入行的同学都是在学习ES3以及ES5
- 当前(2019年)最为流行的是ES6版本。
- 一般ES6 泛指 ES5之后的下一代javascript语言规范, 包含了ES 2015 - ES 2019
- 当前每年发布一个版本,但是到目前为止(2019)都是在ES2015基础上最小幅的新增或者增强。
参考: