Я пытаюсь понять разницу между объектами window и document в js. Я проверил онлайн, но у меня все еще нет четкого понимания. Из того, что я знаю: окно похоже на супер-документ, оно включает объект документа. Поэтому, если я использую firefox для открытия одной страницы: localhost/test.js, могу ли я сказать браузер: firefox - это объект окна, а файл test.js - это объект документа?
Пытаясь понять разницу между объектами окна и документа в js
Ответ 1
Очень подробное объяснение: Читайте здесь
В основном окно - это окно вашего браузера, а документ - это HTML-страница внутри него.
Ответ 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.