JavaScript 简史

1.1 JavaScript简史

在web日益流行的今天,人们对客户端脚本语言的需求也越来越高。

1995.2 就职于网景公司的Brendan Eich发布了其开发的LiveScript,改语言同时在浏览器和服务器使用。为了赶工期,在Netscape Navigator 2发布前夕,Netscape为了搭上媒体热炒Java的顺风车,临时把LiveScript改成了JavaScript.

发布大获成功,之后,微软就在其Internet Explore 3.0中加入名为JScript的JavaScript实现。
当时缺少标准的状况下,导致了个厂商对于实现javascript特性的差异性,并影响了web发展的道路曲折了十几年,事实证明对于世界性开发语言最终还是要有统一的标准,闭门造车是要付出沉痛代价——时间成本。

1997年,以javascript 1.1 为蓝本的建议被提交给了欧洲计算机制造商会(European Computer Manufactures Association, 简称 ECMA),经过几个月的努力完成了 ECMA-262——定义了一种名为ECMAScript的新的脚本标准。

1.2 JavaScript 实现

一个完整的JavaScript事先应该有下列三个部分组成:

  • 核心 [ECMAScript]
  • 文档对象模型 [DOM]
  • 浏览器对象模型[BOM]

1.2.1 ECMAScript

由 ECMAScript-262定义的ECMAScript与web浏览器没有依赖关系。并没有包含输入和输出定义。它只定义了语言基础,我们常见的web浏览器只是ECMAScript实现可能的宿主环境之一。其他宿主环境包括 Node 和 Adobe Flash。它规定了以下内容:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 操作符
  • 对象

1.2.2 文档对象模型(DOM)

文档对象模型(DOM)是针对XML,但经过扩展用于HTML的应用程序编程接口。DOM把整个页面映射为一个多层节点结构。HTML或XML页面中的每个组成部分都是某种类型的节点。


  
    gruguy example
  
  
    

Hello World

1. 为什么要使用DOM

微软和网景支持不同的形式的DHTML,过去只编写一个HTML页面就能够在任何浏览器中运行的时代结束了。 此时,负责制定web通信标准W3C(world wide website Consortium 万维网联盟)开始着手规划DOM

2. DOM级别

DOM1级(DOM level1)于1998.10成为了W3c的推荐标准。DOM1有两个模块组成,DOM核心(Core)和 DOM HTML。DOM核心规定了如何映射基于XML的文档结构,以简化对文档中任意部分访问和操作。DOM HTML模块规定在核心基础上加以扩展,添加了针对HTML的对象和方法。

DOM2级引入了新的模块,定义了新的接口方法

  • DOM视图(DOM View): 定义了跟踪不同文档视图的接口;
  • DOM时间(DOM Events):定义了事件和事件处理的接口;
  • DOM样式(DOM Style):定义了基于CSS为元素应用样式的接口;
  • DOM遍历和范围(DOM traversal and range):定义了遍历和操作文档树的接口。

DOM3级则进一步扩展了DOM,引入了以统一方式加载和保存文档的方法——在DOM加载和保存(DOM Load and Save)模块中定义,新增文档验证的方法——DOM验证(DOM Validation)模块中定义。DOM3级也对DOM核心扩展,开始支持XML1.0规范,设计XML Infoset、XPath和XMLBase。

3. 其他DOM标准

4. Web浏览器对DOM的支持

标准制定后,过了一段时间,web浏览器才开始支持。微软首先在IE5中实现了DOM,但直到IE5.5才算是真正支持了DOM1级。Netscape后来重心放在了firefox上,firefox 3完全支持DOM1,几乎完全支持DOM2,还有一部分DOM3,目前,主流的浏览器都支持了DOM标准。

1.2.3 浏览器对象模型

BOM始于web浏览器的实现,对于操作浏览器对象模型,但是没有标准,直到HTML5,将很多BOM功能写进正式规范。

  • 弹出新浏览器窗口的功能
  • 移动、缩放和关闭浏览器窗口功能
  • 提供浏览器详细信息的navigator对象
  • 提供浏览器所加载页面的详细信息的location对象
  • 提供用户显示器分辨率详细信息screen对象
  • 提供cookies的支持
  • 像 XMLHTTPRequest 和IE的 ActiveXObject 这样的自定义对象

你可能感兴趣的:(JavaScript 简史)