DOM代表文档对象模型,顾名思义,以一种平台/浏览器无关的方式表示HTML/XML文档的结构。DOM还提供了一个API来操作DOM,其中包括像getElementsByTagName
和createElement
这样的函数。
JavaScript是一种可以在Web浏览器中执行的编程语言。JavaScript可以通过DOM scripting与DOM交互。
编辑以回答您在评论中的问题:例如,浏览器下载HTML以及任何引用的JS和CSS(以及图像、Flash等)。浏览器从HTML构建DOM,并使用CSS中指定的规则进行呈现。当页面加载、用户执行某些操作或发生任何其他事件时,JS可能会操作DOM。当DOM更改时,浏览器更新所显示的内容。
正如其他人所说,DOM(Document Object Model)本质上是用于操作HTML(或XML)文档的API——通常使用JavaScript,因为我们在浏览器中使用的语言就是JavaScript。但并非总是如此,例如在服务器端或桌面端,也有类似于DOM的API可用于操作这些文档,比如:http://java.sun.com/j2se/1.4.2/docs/api/org/w3c/dom/package-summary.html。
JavaScript只是一种编程语言。它碰巧是大多数(如果不是全部)Web浏览器的事实标准脚本语言,因此在实践中,当你想在客户端运行DOM操作脚本时,你通常会同时使用DOM和JavaScript。
然而,并不一定要这样。某人完全可以编写一个Web浏览器(或Web浏览器插件),让程序员们用Python、Ruby、C、Scheme等语言编写他们的DOM操作脚本(事实上,JavaScript最初是Netscape的Scheme编写的)。
此外,还有JavaScript解释器(甚至编译器),它们完全独立于Web浏览器运行。事实上,如果你想了解JavaScript语言的核心是什么样子,可以试着使用Mozilla的Rhino做一些简单的脚本编写:http://www.mozilla.org/rhino/。这里没有默认的DOM,没有窗口对象,没有任何与浏览器相关联的默认内容(不过你可以导入一些Java DOM包)。
我建议阅读 MDC 上旧版的 JavaScript 1.5 规范 (http://developer.mozilla.org/en/Core_JavaScript_1.5_Guide ),以及他们关于 DOM 的一些材料 (http://developer.mozilla.org/en/DOM )。
简单来说,JavaScript 允许你操作 DOM,即文档对象模型,它控制客户端脚本。
文档对象模型(DOM)是用于HTML和XML文档的API。它提供了文档的结构表示,使您能够修改其内容和视觉呈现。本质上,它将网页连接到脚本或编程语言。
虽然JavaScript是允许您操作DOM对象的编程语言。
希望这可以澄清问题。