第2章 JavaScript简介
JavaScript最初是由网景(Netscape)公司于1995年开发的一种脚本语言,用于给HTML网页增加动态功能,最早使用在网景导航者浏览器上,随后微软在其Internet Explorer 3.0中引入了JScript来实现类似的功能。
但是,JScript和JavaScript的语法并不统一,这就给程序开发人员带来了很大的麻烦。于是,1996年11月,网景公司将JavaScript提交给ECMA(欧洲计算机制造商协会)进行标准化,最后由网景、Sun、微软和Borland等公司组成的工作组制定了统一的标准——ECMA-262,并且将脚本语言的名称最终定为ECMAScript(以下简称ES)。
ES主要定义了语言本身的特性,而作为一种脚本语言,ES并不是只可以用于浏览器,还可以同时用于其他合适的场景,例如,ActionScript可用于Flex, Node.js可用于服务端等。
JavaScript(以下简称JS)一般是指用在浏览器上完成动态网页功能的语言,主要包含三部分内容:ES、DOM和BOM。ES定义了基本的语法结构,DOM(Document Object Model,文档对象模型)定义了文档对象的结构及其操作方法,BOM(Browser Object Mode,浏览器对象模型)提供了跟浏览器交互的接口。
多知道点
JS的创始人布兰登·艾奇
吃水不忘挖井人,在正式学习JS之前,我们先来认识一下它的创建者—布兰登·艾奇(Brendan Eich)。这是一位传奇人物,他在1995年4月被网景(Netscape)公司录用,同年5月,他用了10天时间就将JS设计了出来!
当时的大环境是这样的,1994年网景公司发布了Navigator(导航者)浏览器0.9版。这是一款非常经典的浏览器,曾经轰动一时,网景公司也因此名声大噪。但是,Navigator 0.9并不具备跟用户交互的功能,只能完成页面内容的展示,这就成了Navigator 0.9美中不足的地方。为了弥补这一缺陷,当时有两套解决方案,第一套是采用(当时)现有的脚本语言,例如Perl、Python、Tcl、Scheme等,第二套是网景自己发明一种新的脚本语言。网景公司的高层对这两套方案产生了严重分歧,他们争论不休,很难决断。
就在这一年(1995年), Sun公司将Oak语言改名为Java并正式推向市场,而且Sun还推出了自己的浏览器:HotJava。这款浏览器可以将Java作为脚本嵌入到网页中实现跟用户的交互,即Java Applet。当时网景公司跟Sun公司结成联盟,也在自己的Navigator浏览器中实现了相应的功能。但是后来他们发现这种方式过于复杂,所以就想开发一种跟Java语言类似,但使用起来更加简单的语言。这项任务就交给了新录用的布兰登·艾奇,他当时34岁。
虽然布兰登·艾奇当时的主要方向和兴趣是函数式编程,对Java并不感兴趣,但他还是仅用了10天时间就完成了新脚本的设计(当然其中包含了很多不严谨的地方)。本书的主角JS就这么诞生了。
对于布兰登·艾奇个人来说,除了是JS的创建者之外,还有一件事情广为人知。
2008年,布兰登·艾奇曾经向当时轰动一时的“Proposition 8”(加州8号提案)及其支持者进行捐款。这份提案的内容是反对同性恋婚姻,在当时遭到很多美国人的反对,其依据是美国所谓的“自由”,不过依然有众多的支持者。他们双方为了各自的立场展开了拉票大战,据说这次拉票的规模仅次于美国总统大选的拉票!而且这次事件还被拍成了电影《8号提案》。
2014年3月底,布兰登·艾奇出任网景的后身Mozilla的CEO(原来是CTO)。大名鼎鼎的Firefox(火狐浏览器)就是Mozilla的产品。但是,布兰登·艾奇在出任仅10日后就被迫辞职,反对的原因竟然是他支持过“8号提案”!
虽然布兰登·艾奇做CEO的时间并不长,但是其贡献是有目共睹的。真正的自由大概并不是一味放纵自己,而是《论语》中的“随心所欲不逾矩”吧!
巧的是我们现在所学的JavaScript其实并不是科学技术,只是别人所制定的一套“规矩”罢了,而学好的标准正是“随心所欲不逾矩”。