JavaScript 的诞生

179 阅读3分钟

背景

1993年,NCSA Mosaic 被发表,这是最早流行的图形接口网页浏览器,它在万维网的普及上起到了极大的作用。

1994年,一家公司雇用了许多原来的NCSA Mosaic开发者用来开发Mosaic Netscape,目标是取代NCSAMosaic成为世界第一的网页浏览器,该浏览器发布后在四个月内就占据了四分之三的浏览器市场,成为1990年代互联网的主要浏览器。为避免NCSA的商标所有权问题,该浏览器于同年更名为Netscape Navigator。

网景预见到网络需要变得更动态。

1995年,网景招募了布兰登·艾克,目标是把Scheme语言嵌入到Netscape Navigator浏览器当中,布兰登在1995年5月仅花了十天时间就把原型设计出来了。最初命名为Mocha,当时公司领导者为了让这门语言搭上Java这个编程语言“热词”,因此将其临时改名为JavaScript。

JavaScript推出后在浏览器上大获成功,微软公司在不久后就为Internet Explorer 3浏览器推出了JScript,以与处于市场领导地位的网景产品同台竞争。

1996年11月,网景正式向ECMA(欧洲计算机制造商协会)提交语言标准。1997年6月,ECMA以JavaScript语言为基础制定了ECMAScript标准规范ECMA-262。JavaScript成为了ECMAScript最著名的实现之一。

JavaScript 的设计缺陷

JavaScript不够完善三个客观原因:

  1. 设计阶段过于仓促

    布兰登为了公司的任务,仅花了十天时间就把原型设计出来了。另一方面,这种语言的设计初衷,是为了解决一些简单的网页互动(比如,检查"用户名"是否填写),并没有考虑复杂应用的需要。

  2. 没有先例

    Javascript同时结合了函数式编程和面向对象编程的特点,这很可能是历史上的第一例。而且直到今天为止,Javascript仍然是世界上唯一使用Prototype继承模型的主要语言。这使得它没有设计先例可以参考。

  3. 过早的标准化

    Javascript的发展非常快,根本没有时间调整设计,又由于微软公司的强势介入,网景不得不申请Javascript的国际标准来压制微软,设计缺陷还没有充分暴露就成了标准。

JavaScript的10个设计缺陷:

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

如何看待JavaScript的设计缺陷?

虽然JavaScript有缺陷,数量还不少,但它的编程能力很强大,前途很光明。

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

Javascript目前是网页编程的唯一语言,只要互联网继续发展,它就必然一起发展。



借鉴于@阮一峰博客[www.ruanyifeng.com/blog/2011/0…]