Пытаясь понять разницу между объектами окна и документа в js

Я пытаюсь понять разницу между объектами window и document в js. Я проверил онлайн, но у меня все еще нет четкого понимания. Из того, что я знаю: окно похоже на супер-документ, оно включает объект документа. Поэтому, если я использую firefox для открытия одной страницы: localhost/test.js, могу ли я сказать браузер: firefox - это объект окна, а файл test.js - это объект документа?

Ответ 1

Очень подробное объяснение: Читайте здесь

В основном окно - это окно вашего браузера, а документ - это HTML-страница внутри него. enter image description here

Ответ 2

window object представляет текущий контекст просмотра. Он содержит такие вещи, как window.location, window.history, window.screen, window.status или window.document. Кроме того, он содержит информацию о настройке кадрирования (свойства frames, parent, top, self) и содержит важные интерфейсы, такие как applicationCache, XMLHttpRequest, setTimeout, escape, console или localStorage. И последнее, но не менее важное: он действует как глобальная область для JavaScript, т.е. Все глобальные переменные являются его свойствами.

Напротив, объект < window.) document представляет DOM, который в настоящее время загружен в window - это только часть его. В документе хранится информация типа documentElement (обычно <html>), коллекция forms, строка cookie, ее location или ее readyState. Он также реализует другой интерфейс (может быть несколько document s, например XML-документ, полученный с помощью ajax), с такими методами, как getElementById или addEventListener.

Ответ 3

JavaScript, который работает в браузере, имеет Window как верхний уровень. Это означает, что глобальные переменные станут свойствами окна:

// this code is not inside a function
var global1=22;
function test(){
  var local=88;
  window.global2=99;
  console.log(local);//logs 88 because
    // local is available within the body
    // of this function
  console.log(global1);//logs 22
}
console.log(typeof local);//logs undefined becaue were
  // outside the funciton body
test();
console.log(global2);//logs 99 because we added
   // global2 as a property of window

Таким образом, окно будет содержать все ваши глобальные объекты, это означает, что: parseInt делает то же самое, что и window.parseInt.

Окно даже содержит себя так:

window===window.window.window;//is true
Окно

не имеет getElementById, children, childNodes... funciton, потому что окно не является элементом HTML и документом.

Ответ 4

Приложения JavaScript имеют контекст, область, в которой определены значения. Объект 'root' или 'global' в случае браузера window.

Объект window имеет свойство (переменную), называемое document, в котором хранится представление документа. Документ содержит модельное представление загруженного в настоящее время документа (например, title, anchors и т.д.). Объект window представляет окно браузера, в котором отображается ваш документ.

Кроме того, если вы в script, который не находится в функции, вы определяете что-то вроде:

var x = 10;

Действительно, что вы сделали, это определить переменную в глобальном объекте. В случае браузера это будет в window.

Итак, window.x будет иметь значение 10.