JavaScript的历史
1993年,国家超级电脑应用中心(NCSA)发表了NCSA Mosaic,这是最早流行的图形接口网页浏览器,它在万维网的普及上发挥了重要作用。
1994年,Mosaic的主要开发人员随即创立了Netscape公司(网景公司),并雇用了许多原来的NCSA Mosaic开发者用来开发Netscape Navigator,该公司的目标是取代NCSA Mosaic成为世界第一的网页浏览器。在四个月内,已经占据了四分之三的浏览器市场,并成为1990年代互联网的主要浏览器。网景预见到网络需要变得更动态。公司的创始人马克·安德森认为HTML需要一种胶水语言,让网页设计师和兼职程序员可以很容易地使用它来组装图片和插件之类的组件,且代码可以直接编写在网页标记中。
1995年,网景招募了布兰登·艾克,目标是把Scheme语言嵌入到Netscape Navigator浏览器当中。但更早之前,网景已经跟昇阳合作在Netscape Navigator中支持Java,这时网景内部产生激烈的争论。后来网景决定发明一种与Java搭配使用的辅助脚本语言并且语法上有些类似,为了在其他竞争提案中捍卫JavaScript这个想法,公司需要有一个可以运作的原型。于是布兰登临危受命,在1995年5月仅花了十天时间就把原型设计出来了。
微软公司于1995年推出IE,从而引发了Netscape的浏览器大战,由于每家浏览器的脚本都不一样,网景为了反击微软,于1996年11月,向ECMA提交语言标准,由于版权问题,JS语言标准不叫JavaScript,叫ECMAScript。
JavaScript的诞生记
1994年,网景公司(Netscape)发布了Navigator浏览器0.9版。这是历史上第一个比较成熟的网络浏览器,轰动一时。但是,这个版本的浏览器只能用来浏览,不具备与访问者互动的能力。
因此,网景公司急需一种网页脚本语言,使得浏览器可以与网页互动。公司让工程师Brendan Eich负责开发这种新语言,并要求这个脚本与Java在语法上有些类似。于是他花了十天设计出了JS的最初版本。
最初命名为Mocha,1995年9月在Netscape Navigator 2.0的Beta版中改名为LiveScript,同年12月,Netscape Navigator 2.0 Beta 3中部署时被重命名为JavaScript,当时网景公司与昇阳电脑公司组成的开发联盟为了让这门语言搭上Java这个编程语言“热词”,因此将其临时改名为JavaScript,日后这成为大众对这门语言有诸多误解的原因之一。
JavaScript的10个设计缺陷
- 不适合开发大型程序
- 非常小的标准库 JavaScript提供的标准函数库小,功能不全。
- null和undefined null用于对象(object),意思为空,undefined是一种数据类型,表示定义。两者易混淆,含义不同。
- 全局变量难以控制 Javascript的全局变量,在所有模块中都是可见的;任何一个函数内部都可以生成全局变量,这大大加剧了程序的复杂性。
- 自动插入行尾分号 Javascript的所有语句,都必须以分号结尾。如果你忘记加分号,解释器并不报错,而是为你自动加上分号。有时候,这会导致一些难以发现的错误。
- 加号运算符 +号作为运算符,有两个含义,可以表示数字与数字的和,也可以表示字符与字符的连接。若一个是字符,另一个是数字,数字自动转化为字符。
- NaN NaN是一种数字,表示超出了解释器的极限。
- 数组和对象的区分 由于Javascript的数组也属于对象(object),所以要区分一个对象到底是不是数组。
- ==和===
==用来判断两个值是否相等。当两个值类型不同时,会发生自动转换,得到的结果非常不符合直觉。因此,推荐任何时候都是用"==="比较符。
- 基本类型的包装对象 Javascript有三种基本数据类型:字符串、数字和布尔值。它们都有相应的建构函数,可以生成字符串对象、数字对象和布尔值对象。 与基本数据类型对应的对象类型,作用很小,但是会造成很大的混淆。