JavaScript高级程序设计

什么是 ECMAScript 兼容
ECMA-262 给出了 ECMAScript 兼容的定义。要想成为 ECMAScript 的实现,则该实现必须做到:
 支持 ECMA-262 描述的所有“类型、值、对象、属性、函数以及程序句法和语义”(ECMA-262
第 1 页);
 支持 Unicode 字符标准。
此外,兼容的实现还可以进行下列扩展。
 添加 ECMA-262 没有描述的“更多类型、值、对象、属性和函数”。ECMA-262 所说的这些新增
特性,主要是指该标准中没有规定的新对象和对象的新属性。
 支持 ECMA-262 没有定义的“程序和正则表达式语法”。(也就是说,可以修改和扩展内置的正
则表达式语法。)

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

Sample Page

Hello World!

在 DOM 中,这个页面可以通过图 1-2 所示的分层节点图表示。 通过 DOM 创建的这个表示文档的树形图,开发人员获得了控制页面内容和结构的主动权。借助 DOM 提供的 API,开发人员可以轻松自如地删除、添加、替换或修改任何节点。

浏览器对象模型(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 实现的细节有望朝着兼容性越来越高的方向发展。第 8 章将深入讨论 BOM。

JavaScript 是一种专为与网页交互而设计的脚本语言,由下列三个不同的部分组成:
 ECMAScript,由 ECMA-262 定义,提供核心语言功能;
 文档对象模型(DOM),提供访问和操作网页内容的方法和接口;
 浏览器对象模型(BOM),提供与浏览器交互的方法和接口。
JavaScript 的这三个组成部分,在当前五个主要浏览器(IE、Firefox、Chrome、Safari 和 Opera)中
都得到了不同程度的支持。其中,所有浏览器对 ECMAScript 第 3 版的支持大体上都还不错,而对
ECMAScript 5 的支持程度越来越高,但对 DOM 的支持则彼此相差比较多。对已经正式纳入 HTML5 标
准的 BOM 来说,尽管各浏览器都实现了某些众所周知的共同特性,但其他特性还是会因浏览器而异。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值