JavaScript 的诞生

137 阅读3分钟

1. JavaScript简介

JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言。它由Brendan Eich发明,并已由ECMA(欧洲电脑制造商协会)通过ECMAScript实现语言的标准化。

2. JavaScript的诞生

2.1始于网景

1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,急需一种网页脚本语言,使得浏览器可以与网页互动。

1995年,Sun公司将Oak语言改名为Java,正式向市场推出,它看上去很可能成为未来的主宰。同年网景公司做出决策,未来的网页脚本语言必须"看上去与Java足够相似"。网景公司录用了系统程序员Brendan Eich,并指定他为这种"简化版Java语言"的设计师。

该语言最初命名为Mocha,1995年9月在Navigator 2.0的Beta版中改名为LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中部署时被重命名为JavaScript,当时网景公司与Sun公司组成的开发联盟为了让这门语言搭上Java这个编程语言“热词”,因此将其临时改名为JavaScript,日后这成为大众对这门语言有诸多误解的原因之一。

但是Brendan Eich对Java一点兴趣也没有。为了应付公司安排的任务,他只用10天时间就把Javascript设计出来了。由于设计时间太短,语言的一些细节考虑得不够严谨,导致后来很长一段时间,Javascript写出来的程序混乱不堪。

Javascript语言实际上是两种语言风格的混合产物----(简化的)函数式编程+(简化的)面向对象编程。这是由Brendan Eich(函数式编程)与网景公司(面向对象编程)共同决定的。

2.2 浏览器大战

JavaScript推出后在浏览器上大获成功,微软公司在不久后就为IE 3浏览器推出了JScript,以与处于市场领导地位的网景产品同台竞争。微软也在网页技术上加入了不少专属对象,使不少网页使用非微软平台及浏览器无法正常显示。语言实现和不同专有化的文档对象模型的差异,成为网络上普及使用JavaScript的阻碍。

2.3 JavaScript标准化

1996年11月,为对抗竞争,网景正式向ECMA提交语言标准。1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。1999年12月,第三版发布,这个版本使用最广。2019年12月,第五版发布,增加了一些功能,2015年6月,第六版发布,新的浏览器都支持这一版。此后,摆脱IE浏览器适配束缚的JavaScript每年发布一版,成为了ECMAScript最著名的实现之一。

3. JavaScript的设计缺陷和前景

  • 没有名称空间,允许同名函数的重复定义,不适合开发大型程序。
  • 提供的标准函数库非常小,只能完成一些基本操作,很多功能都不具备。
  • null表示对象为空,undefined表示数据未定义,容易混淆。
  • 全局变量难以控制。
  • 如果你忘记加分号,解释器并不报错,而是为你自动加上分号,这会导致一些难以发现的错误。
  • +号作为运算符,有两个含义,可以表示数字与数字的和,也可以表示字符与字符的连接,这一的设计不必要地加剧了运算的复杂性。
  • ==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。
  • ......

虽然Javascript有缺陷,但是如果遵守良好的编程规范,加上第三方函数库的帮助,Javascript的这些缺陷大部分可以回避;并且随着互联网发展,它也会一同得以发展和优化。

标注,以上内容部分参照维基百科、阮一峰的网络日志,侵删。