DOM.

  DOM - объектная модель документа (Document Object Model).
  Браузер строит в памяти экземпляры объектов - интерфейсы (API) к элементам тегов и таблицам стилей (HTML-объекты) и логические связи между ними для HTML-документов, которые находятся в окне браузера в текущий момент. Свойства и методы этих объектов позволяют программно менять пользовательское наполнение Web-страницы в динамике ее взаимодействия с пользователем.
  Также браузер предоставляет API к элементам, которые относятся к HTML-документам опосредованно (например - окно браузера или сам браузер).

  Скриптам HTML-документов доступны также API некоторых базовых и "продвинутых" технологий, которые лежат в основе (например события), или значительно расширяют возможности (например локальное хранилище данных) Web-дизайна, а также API расширяющие функционал объектной модели документа (например списки и коллекции).

  Поскольку объектная модель браузера обладает своей логикой, которая соответствует логике работы браузера, Web-страницы и HTML-документов в окне браузера, то все API браузера взаимосвязаны. То есть экземпляр любого объекта можно, как правило, получить через свойство или с помощью метода экземпляра другого соответствующего объекта.

  Хотя API браузера уже давно переросли DOM, исторически они выросли из DOM, поэтому их описание в этом справочнике содержится в разделе, который называется DOM.
  Кстати говоря API браузера пожалуй одна из наиболее динамично развивающихся областей в ИТ, и это приводит к однозначным выводам о тенденциях развития технологии и перспективах frontendа.
  В процессе развития API браузера намечался подход к логической модели HTML-документа, а, следовательно, и к DOM, как к некой иерархической структуре из так называемых узлов дерева документа.
  Такими узлами были объявлены вложенные элементы тегов, внутренний текстовый контент элементов тегов, комментарии и атрибуты элементов тегов.
  То есть узел, как объект, обладает набором базовых свойств всех этих объектов, который может быть расширен их конкретной принадлежностью.
  Непонятно, насколько удачен такой подход в отношении текстового контента, комментариев и атрибутов, однако теоретические построения на его основе, приводимые в руководствах по DOM, способны сломать мозги начинающему разработчику и обеспечить хлебом насущным множество преподавателей.
  Впрочем, на построения этих деревьев можно не очень обращать внимание - практика все расставит на свои места. Однако же там, где можно использовать интерфейс Node, его надо использовать, поскольку функционал DOM развивается все-таки от достигнутого (хотя в DOM4 атрибут тега уже не является узлом, и если разработчик уже чего-то наделал с соответствующими интерфейсами, то, то как говорится, "Causa bibendi").
  Итак, API браузера предоставляют программам Web-разработчика (в частности скриптам) весь функционал динамического изменения Web-страниц и взаимодействия с пользователем, браузером, Web-сервером и клиентским устройством.
  Однако следует иметь в виду, что различные браузеры могут поддерживать свои API, которые выходят за рамки стандарта (W3C). Разработчику решать - выходить ему за эти рамки, или нет. В принципе стандартного функционала хватает в любом случае.
  Этот справочник избегает описания нестандартных решений.
  Современный набор API браузера очень обширен и продолжает расширяться. Вследствие конкуренции браузеров появляются (и исчезают) новейшие (в смысле времени) технологии, однако часть из них, оставаясь стандартизированными, являются наглядным примером серьёзного развития технологии.
  И если раньше среди frontend разработчиков интерфейсы DOM считались не очень функциональными, и разработчики предпочитали пользоваться ими не напрямую а использовать интерфейсы специальных библиотек (например jQuery), то теперь ситуация сильно меняется.

  Можно уверенно сказать, что прямое использование интерфейсов браузера позволяет гораздо более гибче использовать технологию, и делать существенно более быстрый frontend.
  Также, что не маловажно, функционал библиотек не успевает за реальным развитием технологии. Это касается и DOM, но в большей степени это касается других интереснейших API, которые предлагают современные браузеры.
  Также, что очень и очень не маловажно, использование библиотек ограничивает кругозор разработчика, замыкая его функционалом и логикой конкретной библиотеки, а это, в условиях быстрого развития технологии, неизбежно приводит к отставанию в понимании трендов её развития и снижению своей конкурентоспособности.
  Конечно же этот справочник не содержит и не может содержать полное описание всех API браузера, однако здесь сделана попытка описать всё, на чем основана современная технология, что уже реально работает в современных браузерах, и что позволяет судить о том, как технология будет развиваться.
  Полное описание можно найти только в стандарте, однако не факт, что конкретные браузеры успевают реализовывать этот стандарт.
  Хорошая попытка такого описания сделана в справочнике mozilla developer network.
  Однако, во-первых, судя по количеству неточностей и упущений, описание такого объёма информации поставило перед авторами практически неподъёмную задачу, во-вторых перевод этого справочника (в переведённой части) иногда бывает понять сложнее, чем английский первоисточник (хотя перед волонтёрами-переводчиками надо снять шляпу).