介绍
学习一门语言我想有必要了解一下这门语言的发展史。
# JavaScript的起源
JavaScript因互联网而生,紧随着浏览器的出现而问世。回顾它的历史,就要从浏览器的历史讲起。
- 1990年底,欧洲核能研究组织,发明了万维网(World Wide Web)。
- 1992年底,美国国家超级电脑应用中心(NCSA),开发了第一个浏览器,Mosaic。
- 1994年10月,Mosaic通信公司成立,不久后改名为Netscape。开始开发面向普通用户的新一代的浏览器 Netscape Navigator。
- 1994年12月,Navigator发布了1.0版,市场份额一举超过90%。
1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。比如,如果网页上有一栏"用户名"要求填写,浏览器就无法判断访问者是否真的填写了,只有让服务器端判断。如果没有填写,服务器端就返回错误,要求用户重新填写,这太浪费时间和服务器资源了。因此,网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。工程师Brendan Eich(布兰登·艾奇)负责开发这种新语言。他觉得,没必要设计得很复杂,这种语言只要能够完成一些简单操作就够了,比如判断用户有没有填写表单。
1995年5月,Brendan Eich(布兰登·艾奇)只用了10天,就设计完成了这种语言的第一版。由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。如果Brendan Eich预见到,未来这种语言会成为互联网第一大语言,全世界有几百万学习者,他会不会多花一点时间呢?如果不是公司的决策,Brendan Eich绝不可能把Java作为Javascript设计的原型。作为设计者,他一点也不喜欢自己的这个作品:
"与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:'它的优秀之处并非原创,它的原创之处并不优秀。'(the part that is good is not original, and the part that is original is not good.)"
# 发展历史
- 1995年5月,JavaScript诞生。
- 1996年11月,网景公司将JavaScript提交给欧洲计算机制造商协会进行标准化。ECMA-262的第一个版本于1997年6月被Ecma组织采纳。
- 1998年6月,ECMAScript 2.0版发布。
- 1999年12月,ECMAScript 3.0版发布,成为JavaScript的通行标准,得到了广泛支持。
- 2007年10月,ECMAScript 4.0版草案发布,对3.0版做了大幅升级,预计次年8月发布正式版本。草案发布后,由于4.0版的目标过于激进,各方对于是否通过这个标准,发生了严重分歧。
- 2008年7月,由于对于下一个版本应该包括哪些功能,各方分歧太大,争论过于激进,ECMA开会决定,中止ECMAScript 4.0的开发,将其中涉及现有功能改善的一小部分,发布为ECMAScript 3.1,而将其他激进的设想扩大范围,放入以后的版本,由于会议的气氛,该版本的项目代号起名为Harmony(和谐)。会后不久,ECMAScript 3.1就改名为ECMAScript 5。
- 2009年12月,ECMAScript 5.0版正式发布。Harmony项目则一分为二,一些较为可行的设想定名为JavaScript.next继续开发,后来演变成ECMAScript 6;一些不是很成熟的设想,则被视为JavaScript.next.next,在更远的将来再考虑推出。
- 2011年6月,ECMAscript 5.1版发布,并且成为ISO国际标准(ISO/IEC 16262:2011)。
- 2013年3月,ECMAScript 6草案冻结,不再添加新功能。新的功能设想将被放到ECMAScript 7。
- 2013年12月,ECMAScript 6草案发布。然后是12个月的讨论期,听取各方反馈。
- 2015年6月,ECMAScript 6发布正式版本,即ECMAScript 2015。(ES6的第一个版本发布)
- 截止发布日期,JavaScript的官方名称是ECMAScript 2015,下一版本将于2016年发布,命名为ECMAScript 2016。之后每年发布一版,新版本将按照ECMAScript+年份的形式发布。
- 2016年6月,小幅修订的《ECMAScript 2016 标准》(简称 ES2016)如期发布,这个版本可以看作是 ES6.1 版,因为两者的差异非常小(只新增了数组实例的includes方法和指数运算符),基本上是同一个标准。【也就是我们所说的ES7】
相关信息
因此,ES6 既是一个历史名词,也是一个泛指,含义是 5.1 版以后的 JavaScript 的下一代标准,涵盖了 ES2015、ES2016、ES2017 等等,而 ES2015 则是正式名称,特指该年发布的正式版本的语言标准。
名称 | 标准版本 | 发行时间 |
---|---|---|
ECMAScript 1 (ES1) | 1 | 1997年6月 |
ECMAScript 2 (ES2) | 2 | 1998年6月 |
ECMAScript 3 (ES3) | 3 | 1999年12月 |
ECMAScript 4 (ES4) | 4 | 被放弃 |
ECMAScript 5 (ES5) | 5 | 2009年12月 |
ECMAScript 5.1 (ES5.1) | 5.1 | 2011年6月 |
ECMAScript 2015 (ES2015)也就是我们 ES6 | 6 | 2015年6月 |
ECMAScript 2016 (ES2016) | 7 | 2016年6月 |
ECMAScript 2017 (ES2017 ) | 8 | 2017年6月 |
... | ... | ... |
# 目录
# 参考资料
- MDN官方文档 (opens new window)
- ECMAScript新特性 (opens new window)
- 判断浏览器是否支持ES某一特性 (opens new window)
- javascript权威指南;
- 你不知道的javascript系列;
- 博客园网站;