javascript与ECMAScript、DOM、BOM的关系

xiaoxiao2021-02-27  225

在初学javascript时,经常会看见javascript dom、ECMAScript等名词,一直不明白,今天查阅了一些资料和评论,简单写一下。

JavaScript 的核心 ECMAScript 描述了该语言的语法和基本对象;DOM 描述了处理网页内容的方法和接口;BOM 描述了与浏览器进行交互的方法和接口。

ECMAScript  

先简单了解javascript的发展历史,在因特网发展的初期,为了减少客户端与服务器的交互(比如表单的验证一类),提高网上冲浪的效率,当时著名的Netscape公司开发了一种名为livescript的脚本语言,当时的目的是在浏览器和服务器(本来要叫它 LiveWire)端使用它。后来即将推出2.0版本的时候,为了顺应java的时髦名声,Netscape公司就其更名为javascript(所以javascript和java的区别相当于雷锋和雷峰塔),从此javascript就成为因特网的必备组件。当时微软并不甘心,克隆了javascript的一个版本,为了避免版权的问题,微软就把它命名为Jscript,同时,当时也存在另外的一个版本,CEnvi 的 ScriptEase。

  然而这样的局面显然是不利于浏览器发展的,所以业界不断呼吁制定脚本语言的标准,最后在各方的努力下,这事也成了,由ECMA(欧洲计算机制造商协会)来制定相应的规范,这样就出现了ECMAScript。但是需要注意的是,ECMAScript只是制定了标准,定义了脚本语言的所有属性、方法和对象,并没有涉及脚本语言的具体实现。其他脚本语言(像javascript和Jscript)以 ECMAScript 作为基准来实现功能和扩展,进而发展出了dom和bom。

  现在我们常用的浏览器脚本语言是javascript,而javascript由ECMAscript、dom和bom组成。

  

DOM

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

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

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

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

BOM

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

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

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

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

转载请注明原文地址: https://www.6miu.com/read-5339.html

最新回复(0)