背景

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不够完善三个客观原因:
-
设计阶段过于仓促
布兰登为了公司的任务,仅花了十天时间就把原型设计出来了。另一方面,这种语言的设计初衷,是为了解决一些简单的网页互动(比如,检查"用户名"是否填写),并没有考虑复杂应用的需要。
-
没有先例
Javascript同时结合了函数式编程和面向对象编程的特点,这很可能是历史上的第一例。而且直到今天为止,Javascript仍然是世界上唯一使用Prototype继承模型的主要语言。这使得它没有设计先例可以参考。
-
过早的标准化
Javascript的发展非常快,根本没有时间调整设计,又由于微软公司的强势介入,网景不得不申请Javascript的国际标准来压制微软,设计缺陷还没有充分暴露就成了标准。
JavaScript的10个设计缺陷:
- 不适合开发大型程序
- 非常小的标准库
- null和undefined
- 全局变量难以控制
- 自动插入行尾分号
- 加号运算符
- NaN
- 数组和对象的区分
- == 和 ===
- 基本类型的包装对象
如何看待JavaScript的设计缺陷?
虽然JavaScript有缺陷,数量还不少,但它的编程能力很强大,前途很光明。
如果遵守良好的编程规范,加上第三方函数库的帮助,Javascript的这些缺陷大部分可以回避。
Javascript目前是网页编程的唯一语言,只要互联网继续发展,它就必然一起发展。
借鉴于@阮一峰博客[www.ruanyifeng.com/blog/2011/0…]