JavaScript 的历史及缺陷

651 阅读4分钟

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 的设计缺陷

  1. 不适合开发大型程序
  2. 非常小的标准库
  3. null和undefined
  4. 全局变量难以控制
  5. 自动插入行尾分号
  6. 加号运算符
  7. NaN
  8. 数组和对象的区分
  9. == 和 ===
  10. 基本类型的包装对象

最后

既然Javascript有缺陷,数量还不少,那么它是不是一种很糟糕的语言?有没有前途?

回答是Javascript并不算糟糕,相反它的编程能力很强大,前途很光明。

首先,如果遵守良好的编程规范,加上第三方函数库的帮助,Javascript的这些缺陷大部分可以回避。

其次,Javascript目前是网页编程的唯一语言,只要互联网继续发展,它就必然一起发展。目前,许多新项目大大扩展了它的用途,node.js使得Javascript可以用于后端的服务器编程,coffeeScript使你可以用python和ruby的语法,撰写Javascript。

最后,只要发布新版本的语言标准(比如 ECMAscript 6),就可以弥补这些设计缺陷。当然,标准的发布和标准的实现是两回事,上述的很多缺陷也许会一直伴随到Javascript存在的最后一天(向下兼容,为了不让程序员重新写网页)。

资料来源饥人古| 维基百科| 阮一峰博客