大时代下的互联网
- 1994-1995年,网景公司(Netscape)发布了Navigator浏览器0.9版,轰动一时。同时间招募了JS之父布兰登·艾克,目标是把Scheme语言嵌入到Navigator浏览器当中。
- 10天后,布兰登设计了JS的最初版本,因为时间仓促,使得JS到如今也有很多缺陷
- 1996年IE3发布,支持JScript(微软版的JS)
- 1996年网景不甘示弱,向ECMA提交语言标准
- 1997年第一版ECMAScript发布
- 1998年IE3与Windows捆绑销售,瞬间超越网景。之后由于IE太火了,微软出现一些懈怠,不再用心维护,也为JS的兴起提供机会
- 1998年网景由于微软给施加压力过大,不得不做出一项重大决定——开源自己的浏览器,但还是回天乏术,之后被AOL收购
- 1999年ECMAScript3发布,这个版本是目前使用最广的版本。之后ECMAScript4因种种原因流产
- 2001年IE6随着WindowsXP发布,微软开始中国市场急速扩张时代
- 2004:IE6全球份额达到80%,微软做出错误决定:解散IE6团队,同年Google创建自己的浏览器团队,广泛搜集微软网景被遣散员工,致力于研发自己的浏览器
- 2004年愚人节,谷歌发布Gmail在线网页,向世界证明JS是有可取之处的
- 2005年,Jesse将谷歌用到的技术命名为AJAX,从此前端技术正式出现
- 2006年,jQuery发布,是目前最长寿的JS库。 后来的十年,jQUery大放异彩,直到IE不行了,才没有那么火
- 2008年 Chrome浏览器问世,当年拿下市场1%份额。同年Chrome的JS引擎V8上线,预示了以后JS的盛行
- 2009年ECMAScript5借助Chrome的势头发布而发布,同时因为IE的牵制,只有有限的几个功能
- 2010年iPhone4问世,从此世界进入移动互联网时代,微软IE走向下坡路
- 2011年微软与诺基亚合作进军移动端,结果不敌苹果,微软受创,诺基亚全军覆没,手机业务被微软收购
- 2015年6月ECMAScript6发布,新浏览器都支持这一版本,宣告JS正式开始盛行
- 2016年淘宝天猫宣布不再支持IE6、7,对微软浏览器业务进行毁灭性打击,从此IE浏览器陷入低谷,不再成为行业优先考虑对象
JavaScript最终淘汰了它最大的竞争对手JScript,活了下来。从此,前端技术连带JS进入飞速发展的时代
JavaScript发展过程与原因
浏览器大战
上面的时间表我们可以看出,1995年js出现,之后1996年微软紧跟发布了支持Jscript的IE3浏览器,并且依托自家Windows操作系统,很快成为浏览器市场的统治者。而网景公司于1998年将自家浏览器开源也没能挽救自己。IE的一路高歌猛进,部分问题也开始暴露了出来。但微软并不以为然,甚至解散了IE6的开发团队,只留下了了几个人用于维护。而后谷歌发起奇袭,于2004年推出了Chrome浏览器,并且凭借自身优秀的性能与强大的兼容性,很快成为了全球占有率最高的浏览器。而JS也因为Chrome的崛起而发展起来
移动互联网
如果说PC端只是削弱了IE的实力,那么移动端的缺失就是微软的滑铁卢了。2010年iPhone4的发布宣告了移动互联网时代的来临,而微软联合诺基亚推出的WindowsPhone手机系统在兼容性、营销等方面的失败,使得IE错失了进军移动市场的机会。而JS凭借自身功耗低,兼容性好,则在众多语言中成功打进移动端市场
ECMAScript标准的制定
1996年网景公司制定JS开发出一种脚本语言的标准化规范ECMAScript,决定了JS是一门标准化的、任何人都可以学习和使用的版本。而1999年ECMAScript3的出现让JavaScript走进了程序员的世界,成为了使用最广的一个版本。而在IE统治的黑暗时代中,ECMAScript虽然动作不大却一直保持更新,直到2015年ECMAScript6的发布使得JavaScript熬过了最艰难的时期,将自身的强大之处向全世界展现出来
杀手级应用
JS能发展至今,天时地利人和缺一不可,天时地利已经讲过,而人和也同样关键。每一种语言的进步总要有一个或几个厉害的应用来衬托,JS也不例外。2004年愚人节,谷歌发布Gmail在线网页,这个JS支持的在线网页让世界知道了,网页不只能看新闻与图片,也让JS在开发者心中留下印象。而2005年谷歌Jesse将谷歌用到的技术命名为AJAX,从此前端技术正式出现,而JS作为前端主流语言,被更多的人所认同。而2009年Ryan基于V8创建node.js,2010年lsaac基于node.js创建npm,后来node.js与npm合二为一,前端工程师就可以在浏览器之外执行js了。这一应用引发了JS语言的超级爆发,从此JS语言不再局限于前端,可以说是增加了无限可能,JavaScript也衍生出了众多的技术,例如:webpack,angular,react,vue等。至此,JavaScript语言最终备胎逆袭,走向了言生巅峰
JavaScript的天生缺陷
之前时间表我们也看到了,最初JS从设计到诞生只有10天的时间,时间太过于仓促以至于JavaScript也有一些天生的缺陷
- 不适合大型项目:没有命名空间,不可以模块化
- 非常小的标准库
- null和undefined
- 全局变量难以控制
- 自动插入行尾分号
- 加号运算符
- NaN
- 数组和对象的区分
- == 和 ===
- 基本类型的包装对象