这可能是一个愚蠢的问题,但是当我搜索答案时,我得到了有关对象数组的 jQuery 结果。我还没到那一步,想了解 javascript 本身如何与 DOM 交互。
如果我没记错的话,DOM 是一个创建并用于渲染 HTML 的对象树? javascript 也有同名的对象。例如:窗口、文档和带有 id 的元素...这些是相同的对象吗?
我读到 javascript 是 HTML5 的一部分,这是因为 javascript 对象实际上是 DOM 对象,并且 javascript 语言是围绕 DOM 构建的吗?如果是这样,怎么可能在没有 DOM 的情况下使用 javascript 呢? - 例如,你如何制作桌面应用程序?我使用一个名为“brackets”的程序,它是用 javascript 编码的。
最佳答案
我认为 MDN 有一个很好的定义:
The Document Object Model (DOM) is an API for manipulating HTML and XML documents. It provides a structural representation of the document, enabling you to modify its content and visual presentation by using a scripting language such as JavaScript.
所以 DOM 是一个 API 的规范,可用于在网页中选择、操作和创建新元素,通过 an API .
通过允许我们访问实现 DOM API 特定部分的 JavaScript 对象,该 API 对我们 JavaScript 开发人员来说是可见的(或公开的)。 p>
window
元素是其中之一;如MDN says
The
window
object implements theWindow
interface, which in turn inherits from theAbstractView
interface.
-
window
是 JavaScript 对象window
。 - ...它实现了 DOM
Window
界面 - ...在幕后(我们并不真正关心这一点)继承了
AbstractView
接口(interface)。
但是,以及实现 DOM Window
接口(interface),window
还公开了几种 JavaScript 类型和函数;不属于 Window
的一部分接口(interface),但存在于 window
对象。
- 所有类型;
window.String
,window.Object
,window.Array
. -
Math
- ...
正如您特别提到的document
; document
是 DOM
的一部分Window
界面,可以看到listed here .
简而言之,任何涉及选择、操作和创建 HTML 元素的内容通常都是 DOM 的一部分。
HTML5是最新的HTML标准,它添加了新的HTML元素,例如<audio>
和<video>
标签。 DOM API 已更新,允许 API 控制这些新元素。
反过来,实现这些 API 的 JavaScript 对象也必须更新。
JavaScript 是一种编程语言。 DOM 可以被认为是一个框架或库,它可以让您通过 JavaScript 控制 HTML。
JavaScript 可以完全独立使用,无需这个库;这正是 NodeJS 和 Brackets 等环境中发生的情况。
关于JavaScript 对象与 DOM 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077598/