Ответ 1
Объектная модель DOM (Документ) начинается с document
node. Он называется "root node".
Наблюдайте следующее дерево (соответствующее nodeType
в круглых скобках):
[HTMLDocument](9)
[DocumentType](10)
[HTMLHTMLElement](1)
[HTMLHeadElement](1)
[HTMLTitleElement](1)
[Text]Title(3)
[HTMLBodyElement](1)
Дерево 1 будет образовано из следующей разметки:
<!DOCTYPE HTML><html><head><title>Title</title></head></body></html>
Обратите внимание на отсутствие пробелов. Добавление пробелов добавило бы текстовые узлы в дерево документов и явно затруднило бы имитацию.
Объект window
не является частью DOM. Это объект-хост, реализованный как глобальный объект , чтобы завершить реализацию ECMAScript. У этого есть свой собственный стандарт, который доступен от W3C. В то время как глобальный объект требуется для завершения реализации ECMAScript, DOM - нет. Это показано в среде node.js.
¹ Некоторые среды игнорируют doctype node. Я наблюдал Opera 5-9 и Safari 3.1 как среды, демонстрирующие это поведение.