何谓JavaScript
JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言。它被世界上的绝大多数网站所使用,也被世界上的主流浏览器所支持,例如Chrome、IE、Opera等等。
JavaScript的历史始于网景
1995年,网景招募了布兰登·艾克,目标是把Scheme语言作为网页脚本嵌入到Netscape Navigator浏览器(这是历史上第一个比较成熟的浏览器)当中。但更早之前,网景已经跟Sun公司合作在浏览器中支持Java,甚至还考虑直接将Java作为脚本语言嵌入网页,只是因为这样会使HTML网页过于复杂,后来才不得不放弃。后来网景决定发明一种与Java搭配使用的辅助脚本语言,并且要求语法上有些类似,这个决策排除了如Perl、Python、Tcl或Scheme等语言。于是艾克在1995年5月,为了应付公司安排的任务,仅花了十天时间,把原型设计出来了(这也为JavaScript的未来留下隐患)。
与微软的竞争
微软公司于1995年推出了IE浏览器,并且在windows系统上预装,从而引发了与Netscape的浏览器大战。微软又对Netscape Navigator解释器进行了逆向工程,创建了JScript,以便与网景的产品竞争。
标准化
1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准的申请。1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。
JavaScript缺陷
产生原因
1.过于仓促的设计阶段
因为布兰登·艾克只是为了应付工作,也并不愿意按照java的样子设计。而且这种语言的设计初衷,是为了解决一些简单的网页互动,所以开发者对这一语言的开发并不上心。
2.没有先例
Javascript同时结合了函数式编程和面向对象编程的特点,设计思路里也借鉴了多种语言的特征,这使得它没有设计先例可以参考。
3.过早的标准化
1996年11月,为了压制微软的JScript,网景公司决定申请Javascript的国际标准。而JavaScript在刚刚上市,用户数量便是爆炸性的增长,不仅缺乏积累用户的过程,也使语言调整变得困难重重。因此,Javascript的规格还没来及调整,就固化了。
JavaScript的缺陷
1.不适合大型程序的开发
2.提供的标准函数库很小
3.null的设计不合理
4.全局变量难以控制
5.自动插入行尾分号
6.加号运算符的双重含义
7.Nah的奇怪特性
8.数组和对象的区分十分麻烦
9.==的判断不符合直觉
10.基本数据类型对应的对象类型易造成混淆。
*但是配合了第三方函数库,这些缺陷大部分都能回避