Все объекты JS работают в определенной среде она называется браузерное#окружение
Window
Объект#window представляет собой окно веб-браузера, в котором размещаются веб-страницы. window является глобальным объектом, поэтому при доступе к его свойствам и методам необязательно использовать его имя.
На картинке ниже в общих чертах показано, что доступно для JavaScript в браузерном окружении:

Как мы видим, имеется корневой объект #window, который выступает в 2 ролях:
- Во-первых, это глобальный объект для JavaScript-кода, об этом говорится в 0005 Глобальный объект
- Во-вторых, он также представляет собой окно браузера и располагает методами для управления им.
Например, здесь мы используем window как глобальный объект:#глобальный-объект
function sayHi() {
alert("Hello");
} // глобальные функции доступны как методы глобального объекта: window.sayHi();`А здесь мы используем window как объект окна браузера, чтобы узнать его высоту:
alert(window.innerHeight); // внутренняя высота окна браузера`DOM
#DOM – объектная модель документа, которая представляет все содержимое страницы в виде объектов, которые можно менять.
Объект #document – основная «входная точка». С его помощью мы можем что-то создавать или менять на странице.
Например:
// заменим цвет фона на красный,
document.body.style.background = "red"; // а через секунду вернём как было
setTimeout(() => document.body.style.background = "", 1000);`Мы использовали в примере только document.body.style, но на самом деле возможности по управлению страницей намного шире.
BOM
Объектная модель браузера (Browser Object Model,#BOM) – это дополнительные объекты, предоставляемые браузером (окружением), чтобы работать со всем, кроме документа.
Например:
- Объект navigator даёт информацию о самом браузере и операционной системе. Среди множества его свойств самыми известными являются:
navigator.userAgent– информация о текущем браузере, иnavigator.platform– информация о платформе (может помочь в понимании того, в какой ОС открыт браузер – Windows/Linux/Mac и так далее). - Объект location позволяет получить текущий URL и перенаправить браузер по новому адресу.
Вот как мы можем использовать объект location:
alert(location.href); // показывает текущий URL
if (confirm("Перейти на Wikipedia?")) {
location.href = "https://wikipedia.org"; // перенаправляет браузер на другой URL }`Функции alert/confirm/prompt тоже являются частью BOM: они не относятся непосредственно к странице, но представляют собой методы объекта окна браузера для коммуникации с пользователем.