欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

JavaScript 简史

程序员文章站 2022-05-04 14:43:25
1.1 JavaScript简史 在web日益流行的今天,人们对客户端脚本语言的需求也越来越高。 1995.2 就职于网景公司的Brendan Eich发布了其开发的LiveScript,改语言同时在浏览器和服务器使用。为了赶工期,在Netscape Navigator 2发布前夕,Netscape ......

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页面中的每个组成部分都是某种类型的节点。

<html>
  <head>
    <title>gruguy example</title>
  </head>
  <body>
    <p>hello world</p>
  </body>
</html>

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 这样的自定义对象