JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。
历史
-
1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。......网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。
-
在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。
-
为了取得技术优势,1996年8月微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。
-
1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。
-
1997年6月,第一版ECMAScript发布
-
1999年12月,第三版发布,这个版本使用最广
-
第四版,加入的功能太多,实现起来不容易,流产(刚好是IE6称霸的这几年)
-
2004年的愚人节,谷歌发布Gmail在线网页,让用户和开发者眼前一亮
-
2005年,Jesse将谷歌用到的技术命名为AJAX, 此后,前端技术正式出现,JavaScript兴起
-
2009年12月,第五版发布,增加了一些功能(谷歌崛起的后一年)
-
2015年6月,第六版发布,新浏览器都支持这一版,现在使用的都是这一版
之后每年发布一版,版本号以年份命名
Javascript有设计缺陷
虽然JavaScript发展的很快,但是也有不少的缺陷,导致缺陷的有三个客观原因
1. 设计阶段过于仓促
Javascript的设计,其实只用了十天。而且,设计师是为了向公司交差,本人并不愿意这样设计
2. 没有先例
avascript同时结合了函数式编程和面向对象编程的特点,这很可能是历史上的第一例。而且直到今天为止,Javascript仍然是世界上唯一使用Prototype继承模型的主要语言。这使得它没有设计先例可以参考。
3. 过早的标准化
1996年8月,微软公司强势介入,宣布推出自己的脚本语言Jscript;11月,为了压制微软,网景公司决定申请Javascript的国际标准;1997年6月,第一个国际标准ECMA-262正式颁布。
也就是说,Javascript推出一年半之后,国际标准就问世了。设计缺陷还没有充分暴露就成了标准。相比之下,C语言问世将近20年之后,国际标准才颁布。
JavaScript 的设计缺陷
- 不适合开发大型程序
- 非常小的标准库
- null和undefined
- 全局变量难以控制
- 自动插入行尾分号
- 加号运算符
- NaN
- 数组和对象的区分
- == 和 ===
- 基本类型的包装对象
最后
既然Javascript有缺陷,数量还不少,那么它是不是一种很糟糕的语言?有没有前途?
回答是Javascript并不算糟糕,相反它的编程能力很强大,前途很光明。
首先,如果遵守良好的编程规范,加上第三方函数库的帮助,Javascript的这些缺陷大部分可以回避。
其次,Javascript目前是网页编程的唯一语言,只要互联网继续发展,它就必然一起发展。目前,许多新项目大大扩展了它的用途,node.js使得Javascript可以用于后端的服务器编程,coffeeScript使你可以用python和ruby的语法,撰写Javascript。
最后,只要发布新版本的语言标准(比如 ECMAscript 6),就可以弥补这些设计缺陷。当然,标准的发布和标准的实现是两回事,上述的很多缺陷也许会一直伴随到Javascript存在的最后一天(向下兼容,为了不让程序员重新写网页)。
资料来源饥人古| 维基百科| 阮一峰博客