主线
根据时间线看 JavaScript 的历史发展。
(tips:觉的太长不想看的,可以直接跳到文末看图)
1990年:
李爵士了发明了 WWW、HTML、URL 和世界上第一个浏览器和服务器。
1993年:
美国一个大学的计算机应用中心 NCSA 发布了 NCSA Mosaic,这是世界上最早流行的图形接口网页浏览器。
1994年:
因为看到了万维网的商机,成立 Mosaic 公司,把原来早期开发 NCSA Mosaic 浏览器的人员挖过来,开发 Mosaic Netscape,目标是取代 NCSA Mosaic,后来因为商标问题,改名为 Netscape Navigator,这家公司也就是后来的网景公司。
同年,赖先生提出了CSS。
1995年:
网景浏览器火了以后,公司觉的现在的浏览器功能还是不够顶,应该再加点动态功能。
但是公司内部意见不一,有人觉的直接支持现有的语言就完事了,有人觉的专门设计一种语言更好。可能因为在和 Sun 公司合作有关,最后公司决定发明一种和 Java 搭配使用的脚本。
之后网景招聘了布兰登,让布兰登来搞。布兰登内心是拒绝的,但是为了应付差事,还是花了10天的时间创造了 JavaScript 的原型。也正是因为当初草草了事,才导致了后面的 JavaScript 存在一些缺陷。
当时 Java 很火,公司就要求布兰登设计时要蹭 Java 的流量,于是 JavaScript 最早叫 Mocha( Java 是一种咖啡名,Mocha 也是),之后改叫 LiveScript,后来干脆就叫 JavaScript。
1995年:
JavaScript 推出后让浏览器功能更好用了,非常受欢迎。微软一看,是个商机,于是在自家的 IE3 上推出 JScript 来和网景竞争。网景一看,这哪行,得反击,于是向欧洲计算机制造协会提交了 JavaScript 标准,来推广 JavaScript,后来因为版权问题,改叫 ECMAScript,也就是现在常说的 “ES”。
1997年:
首版ECMAScript标准发布,不能简单的认为 JavaScript = ECMAScript,ECMAScript 是纸上的标准,JavaScript 是在浏览器上具体的实现,纸上的标准往往是落后于浏览器的实现的。基本都是先在浏览器上实现一个功能,然后大家觉的都不错,然后再写进标准,不然直接写进标准,完了功能不行,没人搭理岂不是很尴尬...
1998年:
微软一看,跟我对线还来劲了是不?那我放大招了:把自家 IE 绑定进了 Windows 系统,只要安装了 Windows 系统的就能直接用 IE。当时 Windows 系统很火,加上 IE 和网景浏览器功能差不多,于是把网景打的节节败退。
网景残血了,打不过,咋办呢,于是决定开源 Firefox 浏览器,来扩大自己的影响,但是还是没太大作用,年底还是凉凉了,被美国在线 AOL 公司收购。之后布兰登协助成立了 Mozilla 基金会,来维护 Firefox,帮助 Firefox 的运营。
1999年:
ES3发布,这是使用最广泛的一个版本。
2001年:
WindowsXP系统发布,十分流行,同时带火了绑定在系统里的 IE6。
2004年:
IE6 的全球市场占有率到达了80%以上,可以说是一家独大了,这时微软感觉自己已经无敌了,不用给浏览器开发新功能了,还养着一大帮开发团队做啥?留一些人维护就行了,于是把 IE6 团队给解散了。
另外谷歌公司,雇佣了一些 Firefox 和 IE 团队的开发者,准备研发自己的浏览器。这年的愚人节,谷歌发布了 杀手级应用 Gmail,让当时的人们眼前一亮,JavaScript 这个技术也被人更加重视起来。
2005年:
微软一看形势不对,便重新招人来开发 IE7,但是也是没啥用,没多少人搭理。开发者 Jesse 把谷歌用到的技术总结成 AJAX,受到广泛的肯定和接受。
2006年:
此时主流的浏览器为 IE 和 Firefox,同时 jQuery 发布,很大程度上解决了 IE 的各种奇奇怪怪的兼容性问题,这可是网页开发人员的福音,毕竟当时很多开发人员见到 IE 就想打人。所以在被 IE 掌控的十年里,jQuery 一直都很火,是最长寿的JS库。
2008年:
过了四年,谷歌终于发布了 Chrome 浏览器,四年“打磨”,用今天的话应该宣传说是很有“工匠”精神了,一发布就迅速拿下了全球1%的份额。
2009年:
Ryan 基于谷歌用的 V8 引擎创建了 Node.js,使前端不在局限于浏览器,可以在其他地方写 JavaScript 程序了,快速风靡。
12月时,因为 ES4 “流产”了,与第三代隔了十年的 ES5 终于发布。
2010年:
这年改变世界的肾4,呸,iPhone4 发布了,移动端开始兴起。Isaac 基于 Node.js 写出了 npm,所以现在安装了 Node.js 后基本都是自带 npm 的。TJ 发布了 Express.js 框架, JavaScript 越来越火爆,前端也有越来越多的人关注。
此时因为盗版XP系统在国内风行,中国用户的大部分浏览器还是 IE6。
2011年:
砸核桃,呸,诺基亚被 iPhone 锤的压力山大,而微软正好也开始注重移动端市场,于是诺基亚和微软联合准备搞 Windows Phone。后来都懂的,诺基亚凉凉, 被微软收购,Windows Phone 失败,这就意味着手机上不会再有恐怖的 IE 了,网页开发者们喜大普奔。
Chrome 发展迅速,市场份额超越 Firefox。
2014年:
布兰登成为了 Mozilla 的 CEO,但是因为被爆出歧视同性恋,10天后又被赶下台了...
2015年:
布兰登从 CEO 的位置下来也不能闲着啊,于是创立了 Brave 公司,同样也是做浏览器,主打保护用户隐私的功能。
ECMAScript6 发布,也就是现在经常提起的 “ES6” ,从这个版本以后开始,每个版本的 ES 都以发布年号命名,比如 ECMAScript2016,ECMAScript2017等。
2016年:
Chrome 的全球份额达到了62%,占据半壁以上的江山,成为了浏览器大佬。
淘宝天猫发现,绝大部分的用户都是来自移动端的,用 IE 网购的人很少很少,于是宣布不再支持 IE6、7、8,这个结果让前端开发者们欣喜若狂:终于不用受到 IE 的折磨了。
现状
现在前端技术越来越受到市场的重视,成熟的技术也越来越多。虽然 JavaScript 存在一定的缺陷,但是它依然是一门伟大的语言,并且正在往更远的方向发展...
支线
从不同的方面看待 JavaScript 的历史发展。
“JS之父”布兰登
1961年生于美国,毕业于伊利诺伊大学香槟分校,也就是 NCSA 所在的那个大学。原来的工作是操作系统和网络开发,后来负责微内核与电子信号处理相关工作。
1995年进入网景公司,为网景浏览器开发 JavaScript。原本布兰登的想法是把 Scheme 语言作为网页脚本语言,但是后来网景公司却决定未来的网页脚本语言必须看上去和 Java 足够相似,但又要比 Java 简单,让非专业的网页作者也能很快上手。同时还要蹭 Java 热度,让这门语言火起来。
布兰登本人对 Java 其实是一点兴趣也没有,但是为了应付公司安排的任务,他只用10天就把 JavaScript 给设计出来了。由于设计时间太短,细节考虑不够严谨,导致后来一段时间内,JavaScript 写出来的程序混乱不堪。
网景凉了后,布兰登协助成立了 Mozilla 基金会,来维护 Firefox 的运营,自己担任首席架构师。
2014年晋升为 Mozilla 的 CEO,但是因为曾经捐助过反同性恋的法案,被爆出歧视同性恋而被赶下了台。第二年自己创办了 Brave 公司,也是开发浏览器,主打保护用户隐私的功能。
他的JavaScript的设计思路:
- 借鉴C语言的基本语法;
- 借鉴Java语言的数据类型和内存管理;
- 借鉴Scheme语言,将函数提升到"第一等公民"(first class)的地位;
- 借鉴Self语言,使用基于原型(prototype)的继承机制。
所以,Javascript语言实际上是两种语言风格的混合产物:简化的函数式编程 + 简化的面向对象编程,这是由布兰登本人喜欢的函数式编程与网景公司要求的面向对象编程共同决定的。
他本人对JavaScript的评价
与其说我爱Javascript,不如说我恨它。它是C语言和Self语言一夜情的产物。十八世纪英国文学家约翰逊博士说得好:'它的优秀之 处并非原创,它的原创之处并不优秀。'
JavaScript的10个设计缺陷
这里推荐看阮一峰老师的博客:JavaScript的10个设计缺陷 - 阮一峰的网络日志
浏览器大战
1993年:NCSA 发布的 NCSA Mosaic 浏览器是最早流行起来的图形接口网页浏览器。
1994年:网景开发 NetScape Navigator,取代了原 NCSA Mosaic 浏览器。
1996年:微软发布 IE3,和网景竞争,网景向 ECMA 提交 JavaScript 标准。
1998年:微软把 IE 绑定进 Windows 系统,打败网景,年底网景被美国在线 AOL收购。
2004年:Firefox 开始反击,夺回了一些份额。
2005年:微软发布 IE7,收效甚微。
2006年:Firefox 和 Opera 浏览器市场份额持续增长。
2008年:Chrome 发布。
2011年:Chrome 市场份额超越 Firefox。
2016年:Chrome 全球份额占到了62%。
IE6春风得意的十年
2001年:IE6 伴随 WindowsXP 一起发布。
2004年:IE6 占据全球市场 80%份额。
2005年:IE7 发布,但是打不过 IE6。
2006-2016年,IE6 一直占据着市场主导地位。
2016年:伴随着移动端兴起,淘宝天猫宣布不再支持 IE6、7、8,IE 才慢慢淡出市场。
因为 IE6 不兼容 W3C 的标准,尤其是CSS标准,加之不断爆出安全漏洞,所以 IE6 一直是开发者的恶梦。
能让 IE6 直接的崩溃的神奇 bug:
<style>
*{position:relative}
</style>
<table>
<input>
</table>
//也就是从这个 bug 被发现开始,很多人认为使用 * 会影响浏览器性能
移动市场兴起
2010年:iPhone4 发布,移动端受到广泛关注。
2011年:微软和诺基亚联合,后来诺基亚凉凉,被微软收购,移动端基本没有 IE 了。
2016年:淘宝天猫宣布不在支持 IE6、7、8。
2016年至今:移动端飞速发展。
ECMAScript标准制定
1996年:网景向 ECMA 提交 JavaScript 标准。
1997年:第一版ECMAScript标准发布。
1999年12月:第三版发布,这个版本使用最广泛。
2009年12月:中间第四版“流产”了,相隔十年,第五版发布。
2015年6月:第六版发布,新浏览器都支持这一版本。之后每年发布一个版本,版本号都以当年年号命名。
JS 与 ECMAScript 的关系:
ECMAScript 是纸上的标准,JS是浏览器上的功能实现,纸上标准往往是落后于浏览器的,先实现,再写进标准。
JavaScript兴起
因为最初设计时不够严谨,导致后来的一段时间内 JavaScript 写出的程序混乱不堪,很多人认为这是一门玩具语言。
2004年:愚人节时,谷歌发布 Gmail 应用,才是人们大规模注意到这门语言。当时的人们认为网页只能用来看新闻和图片,Gmail 的发布引起了用户和开发者们的极大兴趣。
2005年:Jesse 将谷歌用到的技术命名为 AJAX,被广泛接受。
2006年:jQuery 发布,大发异彩,是最长寿的JS库。
2009年:Ryan 基于 V8 引擎创建 Node.js。
2010年:Isaac 基于 Node.js 写出了 npm,TJ 发布 Express.js,JavaScript 快速风靡。
如今,各种基于 JavaScript 的技术层出不穷,比如 webpack、Vue、React、Angular 等,JavaScript 的前景也越来越被看好。
导图总结
看不清的可以点开看:
如果你觉的本篇内容对你有帮助的话,请为我点个赞哦~