JavaScript历史:
在1995之前,没有客户端语言,一些简单的表单验证都需要提交到服务器交给诸如Perl之类的服务端语言来处理,然后返回给客户端,当时大部分因特网用户还都是通过28.8kbit/s调制解调器来连接网络,而且网页也不断的变大和复杂,所以急需一个客户端脚本语言来解决类似简单的问题, 那时处于技前沿的Netscape便开始认真考虑解决,便和Sun公司为Netscape Navigator 2.0开发一个LiveScript脚 本语言,1995在Netscape Navigator 2.0正式发布前改名为JavaScript,从此JavaScript变成了因特网的必备组件。因为JavaScript如此成功,此后Netscape在 Netscape Navigator 3.0中发布了1.1版,与此同时,微软在IE3.0中搭载了一个JavaScript的支隆版,叫做JScript。
在微软进入后有3种不同的JavaScript版本同时存在:Netscape Navigator 3.0中的JavaScript 1.1、IE中的JScript以及CEnvi中的ScriptEase,因为没有一个1997标准来统一语法或特性,在1997年,JavaScript 1.1作为一个草案提交给欧洲计算机制造协会(ECMA)。第39委员会(TC39)和一些厂商一起锤炼出了ECMA-262,该标准定义了叫做ECMAScript的全新脚本语言。
JavaScript实现:
尽管ECMAScript是一个 重要标准,但它并不是JavaScript唯一部分,也不是唯一被标准化的部分。一个完整的JavaScript实现是由以下3个不同的部分实现的:
1、核心(ECMAScript)
2、文档对象模型(DOM)
3、浏览器对象模型(BOM)
一、ECMAScript介绍:
ECMAScript并不与任何具体浏览器相绑定,ECMA-262标准(第三段)对ECMAScript的描述如下:
“ECMAScript可以为不同种类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何的宿主环境分开进行规定的...”
Web浏览器对于ECMAScript来说是一个宿主环境,但它并不是唯一的宿主环境,还其它很多的各种环境(例如Nombas的ScriptEase和Macromedia同时用在Flash与Director MX中的ActoinScript)可以容纳ECMAScript的实现。那么ECMAScript在浏览器之外规定了些什么?简单的说,ECMAScript的描述了以下内容:
1、语法;2、类型;3、语句;4、关键定;5、保留字;6、运算符;7、对象。
ECMAScript仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。其他的语言可以实现ECMAScript来作为功能的基准,JavaScript就是这样。
ECMAScript有三个版本,如今所有的主流浏览器都遵守ECMA-262的第三版。
二、DOM
DOM(文档对象模型)是HTML和XML的应用程序接口。DOM把整个页面规划成由节点组成层级构成的文档。HTML或XML页面的每个部分都是一个节点的衍生物。DOM通过创建树来表示文档,从而使开发者对文档的内容和结构具有空前的控制力。用DOM API可以轻松的删除、添加和替换节点。
IE4.0和Netscape Navigator4.0 开始支付不同形式的动态HTML(DHTML),开发者首次能够在不重载网页的情况下修改它的外观和内容,业界决定必须做点什么以保持Web的跨平台性,他们担心微软和Netscape会将Web分化为两个独立的部分,因此负责制定Web通信标准的团体W3C(World Wide Web Comsortium)就开始制定DOM。
DOM的版本:
DOM Level1是W3C于1998年10提出的,它由两个模块组成,DOM Core 和 DOM HTML。前者提供了基于XML的文档的结构图,以方便访问和操作文档的任意部分;后者添加了一些HTML专用的对象和方法,从而扩展了DOM Core。DOM Level1只有一个目标:即规划文档的结构。
DOM Level2引入的几种DOM新模块,用于处理新的接口类型:
1、DOM视图--描述跟踪文档的各种视图(即CSS样式化之前和CSS样式化之后的文档)接口
2、DOM事件--描述事件的接口。
3、DOM样式--描述处理基于CSS样式的接口。
4、DOM遍历和范围--描述扉
DOM Level3引入了以统一方式 载入和保存文档的方法以及验证文档(DOM Validation)的方法,从而进一步扩展了DOM。
三、BOM
IE3.0和Netscape Navigator3.0提供了一种 特性--BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用BOM可以移动窗口、改变状态栏中的文本以及执行其他与页面不直接相关的动作,BOM只是JavaScript实现的一部分,没有任何相关的标准。
BOM主要处理浏览器窗口和框架,不过通常浏览器特定的JavaScript扩展都被看作BOM的一部分。这些扩展包括:
1、弹出新的浏览器窗口。
2、移动、关闭浏览器窗口以及调整窗口的大小。
3、提供WEB浏览器详细信息的导航对象。
4、提供装载到浏览器中页面的详细信息的定位对象。
5、提供用户屏幕分辨率详细的屏幕对象。
6、对cookie的支持。
7、IE扩展了BOM,加入了ActiveXObject类,可以通过JavaScript实例化ActiveX 对象。