JavaScript简介

mac2022-07-05  68

JavaScript简史

JavaScript诞生于1995年,主要目的是处理以前由服务器端语言(如Per)负责的一些输入验证操作由于微软推出JavaScript实现意味着有了两个不同的 JavaScript 版本:Netscape Navigator 中的 JavaScript、Internet Explorer 中的 JScript,在1997年,欧洲计算机制造商协会(ECMA, European Computer Manufacturers Association) 的39号技术委员会完成 ECMA-262——定义一种名为ECMAScript的新脚本语言标准。

JavaScript实现

一个完整的 JavaScript 实现应由下列三个不同的部分组成: 1.核心(ECMAScript) 提供核心语言功能

由 ECMA-262 定义的 ECMAScript 与 Web 浏览器没有依赖关系。ECMA-262 定义的只是这门语言的基础。Web浏览器只是 ECMAScript 实现可能的宿主环境之一。宿主环境不仅提供基本的ECMAScript 实现,同时也会提供该语言的扩展,以便语言与环境之间对接交互。而这些扩展——如DOM,则利用 ECMAScript 的核心类型和语法提供更多更具体的功能,以便实现针对环境的操作。其他宿主环境包括 Node(一种服务端 JavaScript 平台)和 Adobe Flash。

2.文档对象模型(DOM) 提供访问和操作网页内容的方法和接口

文档对象模型(DOM,Document Object Model)是针对 XML 但经过扩展用于 HTML 的应用程序编程接口(API,Application Programming Interface)。DOM 把整个页面映射为一个多层节点结构。HTML或 XML 页面中的每个组成部分都是某种类型的节点,这些节点又包含着不同类型的数据。

1.为什么要使用DOM   在 Internet Explorer 4 和 Netscape Navigator 4 分别支持的不同形式的 DHTML(Dynamic HTML)基础上,开发人员首次无需重新加载网页,就可以修改其外观和内容了。然而,DHTML 在给 Web技术发展带来巨大进步的同时,也带来了巨大的问题由于 Netscape 和微软在开发 DHTML 方面各持己见,过去那个只编写一个 HTML 页面就能够在任何浏览器中运行的时代结束了。   对开发人员而言,如果想继续 保持 Web 跨平台的天性,就必须额外多做一些工作。而人们真正担心的是,如果不对 Netscape 和微软加以控制,Web 开发领域就会出现技术上两强割据,浏览器互不兼容的局面。此时,负责制定 Web 通信标准的 W3C(World Wide Web Consortium,万维网联盟)开始着手规划 DOM.

2.DOM级别   DOM1 级(DOM Level 1)于 1998 年 10 月成为 W3C 的推荐标准。DOM1 级由两个模块组成:DOM核心(DOM Core)和DOM HTML。其中,DOM 核心规定的是如何映射基于 XML 的文档结构,以便简化对文档中任意部分的访问和操作。DOM HTML 模块则在 DOM 核心的基础上加以扩展,添加了针对 HTML 的对象和方法。   如果说 DOM1 级的目标主要是映射文档的结构,那么 DOM2 级的目标就要宽泛多了。DOM2 级在原来 DOM 的基础上又扩充了(DHTML 一直都支持的)鼠标和用户界面事件、范围、遍历(迭代 DOM文档的方法)等细分模块,而且通过对象接口增加了对 CSS(Cascading Style Sheets,层叠样式表)的支持。DOM1 级中的 DOM 核心模块也经过扩展开始支持 XML 命名空间。   DOM2 级 引入了下列新模块,也给出了众多新类型和新接口的定义。DOM 视图(DOM Views):定义了跟踪不同文档(例如,应用 CSS 之前和之后的文档)视图的接口;

DOM 事件(DOM Events):定义了事件和事件处理的接口;DOM 样式(DOM Style):定义了基于 CSS 为元素应用样式的接口;DOM 遍历和范围(DOM Traversal and Range):定义了遍历和操作文档树的接口。

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

3.浏览器对象模型(BOM) 提供与浏览器交互的方法和接口

  Internet Explorer 3 和 Netscape Navigator 3 有一个共同的特色,那就是支持可以访问和操作浏览器窗口的浏览器对象模型(BOM,Browser Object Model)。开发人员使用 BOM 可以控制浏览器显示的页面以外的部分。而 BOM 真正与众不同的地方(也是经常会导致问题的地方),还是它作为 JavaScript 实现的一部分但却没有相关的标准。这个问题在 HTML5 中得到了解决,HTML5 致力于把很多 BOM功能写入正式规范。HTML5 发布后,很多关于 BOM 的困惑烟消云散。   从根本上讲,BOM 只处理浏览器窗口和框架;但人们习惯上也把所有针对浏览器的 JavaScript 扩展算作 BOM的一部分。下面就是一些这样的扩展:

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

  由于没有 BOM标准可以遵循,因此每个浏览器都有自己的实现。虽然也存在一些事实标准,例如要有 window 对象和 navigator 对象等,但每个浏览器都会为这两个对象乃至其他对象定义自己的属性和方法。现在有了 HTML5,BOM 实现的细节有望朝着兼容性越来越高的方向发展。

最新回复(0)