您现在的地位: 365体育备用网址 > bet365体育在线, > JavaScript 教程 > JavaScript 实现

JavaScript 实现_365体育备用网址官网资讯

您现在的地位: 365体育备用网址 > bet365体育在线, > JavaScript 教程 > JavaScript 实现

JavaScript 实现

此节有 182 人学习过     参与评论

JavaScript 的核心 ECMAScript 描述了该语言的语法和基本对象;

DOM 描述了处置网页内容的方法和接口;

BOM 描述了与扫瞄器进行交互的方法和接口。

ECMAScript、DOM 和 BOM

尽管 ECMAScript 是一个重要的标准,但它并不是 JavaScript 唯一的部分,当然,也不是唯一被标准化的部分。实际上,一个完整的 JavaScript 实现是由以下 3 个不同部分组成的:

JavaScript 包括 ECMAScript、DOM 和 BOM

ECMAScript

ECMAScript 并不与任何具体扫瞄器相绑定,实际上,它也没有提到用于任何用户输入输出的方法(这点与 C 这类语言不同,它需要依赖外部的库来完成这类任务)。那么什么才是 ECMAScript 呢?ECMA-262 标准(第 2 段)的描述如下:

“ECMAScript 能够为不同种类的宿主环境提供核心的脚本编程能力,因此核心的脚本语言是与任何特定的宿主环境分开进行规定的... ...”

Web 扫瞄器对于 ECMAScript 来说是一个宿主环境,但它并不是唯一的宿主环境。事实上,还有不计其数的其余各种环境(例如 Nombas 的 ScriptEase,以及 Macromedia 同时用在 Flash 和 Director MX 中的 ActionScript)能够容纳 ECMAScript 实现。那么 ECMAScript 在扫瞄器之外规定了些什么呢?

简单地说,ECMAScript 描述了以下内容:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 运算符
  • 对象

ECMAScript 仅仅是一个描述,定义了脚本语言的一切属性、方法和对象。其余语言能够实现 ECMAScript 来作为功能的基准,JavaScript 就是这样:

ECMAScript、JavaScript、ActionScript、ScriptEase

每个扫瞄器都有它自己的 ECMAScript 接口的实现,然后这个实现又被扩展,包含了 DOM 和 BOM(在以下几节中再探讨)。当然还有其余实现并扩展了 ECMAScript 的语言,例如 Windows 脚本宿主(Windows Scripting Host, WSH)、Macromedia 在 Flash 和 Director MX 中的 ActionScript,以及 Nombas ScriptEase。

1. ECMAScript 的版本

ECMAScript 分成几个不同的版本,它是在一个叫做 ECMA-262 的标准中定义的。和其余标准一样,ECMA-262 会被编辑和更新。当有了主要更新时,就会公布一个标准的新版。最新 ECMA-262 的版本是 5.1,于 2011 年 6 月公布。

ECMA-262 的第一版在本质上与 Netscape 的 JavaScript 1.1 是一样,只是把一切与扫瞄器相关的代码删除了,此外还有一些小的调整。首先,ECMA-262 要求对 Unicode 标准的撑腰(以便撑腰多语言)。第二,它要求对象是平台无关的(Netscape 的 JavaScript 1.1 事实上有不同的对象实现,例如 Date 对象,是依赖于平台)。这是 JavaScript 1.1 和 1.2 365体育备用网址不符合 ECMA-262 规范第一版的主要原因。

ECMA-262 的第二版大部分更新本质上是编辑性的。这次标准的更新是为了与 ISO/IEC-16262 的严厉一致,也并没有特别添加、更改和删除内容。ECMAScript 一般不会遵守第二版。

ECMA-262 第三版是该标准第一次真正的更新。它提供了对字符串处置、失误定义和数值输出的更新。同时,它还增加了正则表示式、新的操纵语句、try...catch 异常处置的撑腰,以及一些为使标准国际化而做的小改动。一般来说,它标志着 ECMAScript 成为一种真正的编程语言。

2. 何谓 ECMAScript 符合性

在 ECMA-262 中,ECMAScript 符合性(conformance)有明确的定义。一个脚本语言必须满足以下四项基本原则:

  • 符合的实现必须按照 ECMA-262 中所描述的撑腰一切的“类型、值、对象、属性、函数和程序语言及语义”(ECMA-262,第一页)
  • 符合的实现必须撑腰 Unicode 字符标准(UCS)
  • 符合的实现能够增加没有在 ECMA-262 中指定的“额外类型、值、对象、属性和函数”。ECMA-262 将这些增加描述为规范中未给定的新对象或对象的新属性
  • 符合的实现能够撑腰没有在 ECMA-262 中定义的“程序和正则表示式语法”(意义是能够替换或者扩展内建的正则表示式撑腰)

一切 ECMAScript 实现必须符合以上标准。

3. Web 扫瞄器中的 ECMAScript 撑腰

含有 JavaScript 1.1 的 Netscape Navigator 3.0 在 1996 年公布。然后,JavaScript 1.1 规范被作为一个新标准的草案被提交给 EMCA。有了 JavaScript 轰动性的流行,Netscape 十分愉快地开头开拓 1.2 版。但有一个问题,ECMA 并未接收 Netscape 的草案。在 Netscape Navigator 3.0 公布后不久,微软就公布了 IE 3.0。该版本的 IE 含有 JScript 1.0(微软自己的 JavaScript 实现的名称),原本计划能够与 JavaScript 1.1 相提并论。然后,由于文档不全以及一些不当的反复特性,JScript 1.0 远远没有到达 JavaScript 1.1 的水平。

在 ECMA-262 第一版定稿之前,公布含有 JavaScript 1.2 的 Netscape Navigator 4.0 是在 1997 年,在那年晚些时刻,ECMA-262 标准被接收并标准化。因此,JavaScript 1.2 并不和 ECMAScript 的第一版兼容,虽然 ECMAScript 应该基于 JavaScript 1.1。

JScript 的下一步是 IE 4.0 中加入的 JScript 3.0(2.0 版是随 IIS 3.0 一起公布的,但并未包含在扫瞄器中)。微软全力宣传 JScript 3.0 是世界上第一个真正符合 ECMA 标准的脚本语言。而那时,ECMA-262 还没有最终定稿,所以 JScript 3.0 也遭受了和 JavaScript 1.2 同样的命运 - 它还是没能符合最终的 ECMAScript 标准。

Netscape 选择在 Netscape Navigator 4.06 中升级它的 JavaScript 实现。JavaScript 1.3 使 Netscape 终于完全符合了 ECMAScript 第一版。Netscape 加入了对 Unicode 标准的撑腰,并让一切的对象保留了在 JavaScript 1.2 中引入的新特性的同时实现了平台独立。

当 Netscape 将它的源代码作为 Mozilla 项目颁布于众时,本来计划 JavaScript 1.4 将会嵌入到 Netscape Navigator 5.0 中。然而,一个冒进的决议 - 要完全从头重新设计 Netscape 的代码,破坏了这个工作。JavaScript 1.4 仅仅作为一个 Netscape Enterprise Server 的服务器端脚本语言公布,以后也没有被放入扫瞄器中。

如今,一切主流的 Web 扫瞄器都遵守 ECMA-262 第三版。

下面的表格列出了大部分流行的 Web 扫瞄器中的 ECMAScript 撑腰:

扫瞄器 DOM 兼容性
Netscape Navigator 2.0 -
Netscape Navigator 3.0 -
Netscape Navigator 4.0 - 4.05 -
Netscape Navigator 4.06 - 4.79 Edition 1
Netscape 6.0+ (Mozilla 0.6.0+) Edition 3
Internet Explorer 3.0 -
Internet Explorer 4.0 -
Internet Explorer 5.0 Edition 1
Internet Explorer 5.5+ Edition 3
Opera 6.0 - 7.1 Edition 2
Opera 7.2+ Edition 3
Safari 1.0+/Konqueror ~ 2.0+ Edition 3

DOM

DOM(文档对象模型)是 HTMLXML 的应用程序接口(API)。DOM 将把整个页面规划成由节点层级构成的文档。HTML 或 XML 页面的每个部分都是一个节点的衍生物。请考虑下面的 HTML 页面:

<html>
  <head>
    <title>Sample Page</title>
  </head>
  <body>
    <p>hello world!</p>
  </body>
</html>

这段代码能够用 DOM 绘制成一个节点层次图:

DOM 节点层次图

DOM 通过创建树来表示文档,从而使开拓者对文档的内容和结构具有空前的操纵力。用 DOM API 能够轻松地删除、添加和替换节点。

1. 365体育备用网址 DOM 必不可少

自从 IE 4.0 和 Netscape Navigator 4.0 开头撑腰不同形态的动态 HTML(DHTML),开拓者首次能够在不重载网页的情况下修改它的外观和内容。这是 Web 技术的一大飞跃,不过也带来了巨大的问题。Netscape 和微软各自开拓自己的 DHTML,从而结束了 Web 开拓者只编写一个 HTML 页面就能够在一切扫瞄器中访问的时期。

业界决议必须要做点什么以坚持 Web 的跨平台特性,他们操心如果放任 Netscape 和微软兰贵坊国际娱乐这样做,Web 必将分化为两个独立的部分,每一部分只适用于特定的扫瞄器。因此,负责指定 Web 通信标准的团体 w3c(World Wide Web Consortium)就开头制定 DOM。

2. DOM 的各个 level

DOM Level 1 是 W3C 于 1998 年 10 月提出的。它由两个模块组成,即 DOM Core 和 DOM HTML。前者提供了基于 XML 的文档的结构图,以便访问和操作文档的任意部分;后者添加了一些 HTML 专用的对象和方法,从而扩展了 DOM Core。

注意,DOM 不是 JavaScript 专有的,事实上许多其余语言都实现了它。不过,Web 扫瞄器中的 DOM 已经用 ECMAScript 实现了,现在是 JavaScript 语言的一个很大组成部分。

DOM Level 1 只是一个目的,即规划文档的结构,DOM Level 2 的目的就广泛多了。对原始 DOM 的扩展添加了对鼠标和用户界面事情(DHTML 对此有丰盛的撑腰)、范围、遍历(反复执行 DOM 文档的方法)的撑腰,并通过对象接口添加了对 CSS(层叠样式表)的撑腰。由 Level 1 引入的原始 DOM Core 也加入了对 XML 命名空间的撑腰。

DOM Level 2 引入了几种 DOM 新模块,用于处置新的接口类型:

  • DOM 视图 - 描述跟踪文档的各种视图(即 CSS 样式化之前和 CSS 样式化之后的文档)
  • DOM 事情 - 描述事情的接口
  • DOM 样式 - 描述处置基于 CSS 样式的接口
  • DOM 遍历和范围 - 描述遍历和操作文档树的接口

DOM Level 3 引入了以统一的方式载入和坚持文档的方法(包含在新模块 DOM Load and Save)以及验证文档(DOM Validation)的方法,从而进一步扩展了 DOM。在 Level 3 中,DOM Core 被扩展为撑腰一切的 XML 1.0 特性,包括 XML Infoset、XPath 和 XML Base。

在学习 DOM 时,可能会遇到有人引用 DOM Level 0。注意,基本没有 DOM Level 0 这个标准,它只是 DOM 的一个历史参考点(DOM Level 0 指的是 IE 4.0 和 Netscape Navigator 4.0 中撑腰的原始 DHTML)。

3. 其余 DOM

除了 DOM Core 和 DOM HTML 外,还有其余几种语言公布了自己的 DOM 标准。这些语言都是基于 XML 的,每种 DOM 都给对应语言添加了特有的方法和接口:

  • 可缩放矢量语言(SVG)1.0
  • 数字标志语言(MathML)1.0
  • 同步多环亚国际登录集成语言(SMIL)

注释:如果希望学习美高梅 在线娱乐相关内容,请访问 365jz 的 SVG 教程

此外,其余语言也开拓了自己的 DOM 实现,如 Mozilla 的 XML 用户界面语言(XUL)。不过,只有上面列出的几种语言是 W3C 的推举标准。

4. Web 扫瞄器中的 DOM 撑腰

DOM 在被 Web 扫瞄器开头实现之前就已经是一种标准了。IE 首次尝试 DOM 是在 5.0 版本中,不过其实直到 5.5 版本之后才具有真正的 DOM 撑腰,IE 5.5 实现了 DOM Level 1。从那时起,IE 就没有引入新的 DOM 功能。

Netscape 直到 Netscape 6(Mozilla 0.6.0)才引入 DOM 撑腰。当前,Mozilla 具有最好的 DOM 撑腰,实现了完整的 Level 1、几乎一切 Level 2 以及一部分 Level 3。(Mozilla 开拓小组的目的是构造一个与标准 100% 兼容的扫瞄器,他们的工作得到了回报。)

Opera 直到 7.0 版本才加入 DOM 撑腰,还有 Safari 也实现了大部分 DOM Level 1。它们几乎都与 IE 5.5 处于同一水平,有些情况下,甚至超越了 IE 5.5。不过,就对 DOM 的撑腰而论,一切扫瞄器都远远落伍于 Mozilla。下表列出了常用扫瞄器对 DOM 的撑腰。

扫瞄器 DOM 兼容性
Netscape Navigator 1.0 - 4.x -
Netscape 6.0+ (Mozilla 0.6.0+) Level 1、Level 2、Level 3(部分)
IE 2.0 - 4.x -
IE 5.0 Level 1(最小)
IE 5.5+ Level 1(几乎全部)
Opera 1.0 - 6.0 -
Opera 7.0+ Level 1(几乎全部)、Level 2 (部分)
Safari 1.0+/Konqueror ~ 2.0+ Level 1

注释:如果希望进一步地学习 DOM 的知识,请访问 365jz 的 HTML DOM 教程XML DOM 教程

BOM

IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(扫瞄器对象模型),能够对扫瞄器窗口进行访问和操作。使用 BOM,开拓者能够移动窗口、改变状态栏中的文本以及执行其余与页面内容不直接相关的动作。使 BOM 独树一帜且又往往令人怀疑的地方在于,它只是 JavaScript 的一个部分,没有任何相关的标准。

BOM 主要处置扫瞄器窗口和框架,不过通常扫瞄器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:

  • 弹出新的扫瞄器窗口
  • 移动、关闭扫瞄器窗口以及调整窗口大小
  • 提供 Web 扫瞄器详细信息的定位对象
  • 提供用户屏幕分辨率详细信息的屏幕对象
  • 对 cookie 的撑腰
  • IE 扩展了 BOM,加入了 ActiveXObject 类,能够通过 JavaScript 实例化 ActiveX 对象

由于没有相关的 BOM 标准,每种扫瞄器都有自己的 BOM 实现。有一些事实上的标准,如具有一个窗口对象和一个导航对象,不过每种扫瞄器能够为这些对象或其余对象定义自己的属性和方法。

参阅:


如对本文有疑问,请提交到交流宝博娱乐官方,广大热心网友会为你解答!! 点击进入宝博娱乐官方


公布评论 (182人察看0条评论)
请自觉遵守互联网相关的政策法规,严禁公布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换明仕msyz手机版
最新评论
------分隔线----------------------------
JavaScript 教程目录
条评论
Sitemap