1.1 JavaScript简史
JavaScript诞生于1995年。当时,它的主要目的是处理以前由服务器端语言(如 Perl)负责的一些输入验证操作。在没有JavaScript的时候,所有输入验证操作都必须由服务器端进行验证,在那个年代,人们还普遍使用电话拨号上网,导致了与服务器的每一次数据交换都成为了对人们耐心的考验。
发展时间线
1995-02:Netscape开发JavaScript 1.0完毕 1996-08:微软开发JScript,与Netscape相竞争 1997:ECMA(欧洲计算机制造商协会)指定TC39技术委员会进行JavaScript和JScript的标准化进程,数月之后 ECMAScript出现了 1998:ISO/IEC也将ECMAScript作为标准,从此,浏览器开发商就以ECMAScript作为各自JavaScript实现的基础
1.2 JavaScript实现
JavaScript的内容比ECMAScript多得多。由下列三个重要组成部分:
1. ECMAScript —— 核心:对实现该标准规定的各个方面内容的语言描述,ECMAScript是标准,JavaScript是对ECMAScript的实现。本书基于ES5(ECMAScript5)进行讲解,即于2009年12月3日发布的版本。 2. 文档对象模型(DOM) —— 文档对象模型:其将整个页面映射为一个多层结点的结构,提供访问和操作页面内容的方法和接口。DOM1(映射结构)、DOM2(视图、事件、样式,遍历和范围)、DOM3级(扩展:统一方式加载和保存文档、文档验证、对DOM核心进行扩展)。 3. 浏览器对象模型(BOM) —— 浏览器对象模型:提供与浏览器交互的方法和接口。
JavaScript 的这三个组成部分,在当前五个主要浏览器(IE、Firefox、Chrome、Safari 和 Opera)中 都得到了不同程度的支持。其中,所有浏览器对 ECMAScript 第 3 版的支持大体上都还不错,而对 ECMAScript 5 的支持程度越来越高,但对 DOM 的支持则彼此相差比较多。对已经正式纳入 HTML5 标 准的 BOM 来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。
1.2.1 ECMAScript
ECMAScript是一个标准,它规定了脚本语言的基础,如基本数据类型,语法规范,操作符等,应注意的是它与web浏览器并没有依赖关系;而JavaScript是ECMAScript的一种实现,依赖于浏览器环境,并根据浏览器的特性扩展了ECMAScript如DOM,便于语言与环境之间的交互。其它ECMAScript的宿主环境如Node和Adobe Flash。
ECMAScript规定了什么内容?
-
语法
-
类型
-
语句
-
关键字
-
保留字
-
操作符
-
对象
这里可以这样理解:ECMAScript 就是对实现该标准规定的各个方面内容的语言的描述。如“应该有什么数据类型”,“应该怎么定义对象”,“循环、判断语句怎么写”类似的问题,但ECMAScript不作具体实现。
1.2.2 文档对象模型(DOM)
文档对象模型(DOM,Document Object Model)是针对XML但经过扩展用于HTML的应用程序编程接口。
DOM把整个页面映射为一个多层节点结构。使得开发人员能够方便的控制页面的内容和结构,轻松自如地删除、添加、替换和修改任何节点。
1. 为什么要使用DOM?
DOM亦是一个标准,目的是解决由于DHTML的出现造成的问题–由于Netscape和微软在开发DHTML方面各持己见,只编写一个HTML页面就能够在任何浏览器中运行的时代结束了。W3C联盟为了继续保持web跨平台的特性,着手制定了DOM标准。
2. DOM级别
DOM1级:
-
DOM核心:规定如何映射基于XML的文档结构,简化对文档中任意部分的访问和操作
-
DOM HTML:在DOM核心的基础上加以扩展,添加针对HTML的对象和方法
DOM2级:
-
DOM视图:定义了跟踪不同文档视图的接口
-
DOM事件:定义了事件和事件处理的接口
-
DOM样式:定义了基于CSS为元素应用样式的接口
-
DOM遍历和范围:定义了遍历和操作文档树的接口
DOM3级
-
DOM加载和保存
-
DOM验证
-
对DOM核心加以扩展,支持XML1.0规范
3. 其它DOM标准
-
SVG:可伸缩矢量图
-
MathML:数学标记语言
-
SMIL:同步多媒体集成语言
这三个标准也是W3C的推荐标准,各自添加了与自己相关的新方法和新接口。
应注意的是,DOM并不只是针对JavaScript的,很多别的语言也实现了DOM,不过,在web浏览器中,基于ECMAScript实现的DOM的确已经称为JavaScript这门语言的一个重要组成部分。实际上,对于XML,HTML,SVG,MathML,SMIL,JavaScript均已实现了它们所规定的DOM接口,可以轻松访问。
具体到JavaScript,即是JavaScript实现了DOM标准,将页面文档映射为了一个对象。
1.2.3 浏览器对象模型(BOM)
BOM可以访问和操作浏览器窗口,开发人员使用BOM可以控制浏览器显示页面以外的部分。
人们习惯上把针对浏览器的JavaScript扩展算作BOM的一部分,主要包括:
-
弹出新浏览器窗口
-
移动、缩放、关闭浏览器窗口
-
提供浏览器详细信息的navigator对象
-
提供浏览器所加载页面的详细信息的location对象
-
提供用户显示器分辨率详细信息的screen对象
-
对cookies的支持
小结
JavaScript是一种专为与网页交互而设计的脚本语言,由以下三部分组成:
-
ECMAScript,提供核心语言功能
-
文档对象模型(DOM),提供访问和操作网页内容的方法和接口
-
浏览器对象模型(BOM),提供与浏览器交互的方法和接口