我看到这些术语作为DOM的全局环境可以互换使用。有什么区别(如果有的话),什么时候我应该使用它们?
当前回答
窗口是实际的全局对象。
屏幕就是屏幕,它包含了关于用户显示的属性。
文档位于DOM所在的位置。
其他回答
窗口是载入浏览器的第一个东西。这个窗口对象具有大多数属性,如长度,innerWidth, innerHeight,名称,如果它已关闭,它的父属性等等。
那么文档对象呢?文档对象是你的html、aspx、php或其他将被加载到浏览器中的文档。文档实际上是在窗口对象中加载的,并具有可用的属性,如标题、URL、cookie等。这到底是什么意思?这意味着如果你想访问窗口的属性,它就是window。属性,如果是document,它就是window。document。Property也可以简写为document。Property。
这似乎很简单。但是一旦IFRAME被引入会发生什么呢?
详见:http://eligeske.com/jquery/what-is-the-difference-between-document-and-window-objects-2/#sthash.CwLGOk9c.dpuf
窗口是实际的全局对象。
屏幕就是屏幕,它包含了关于用户显示的属性。
文档位于DOM所在的位置。
简单地说,下面会有更多的细节,
window是执行上下文和该上下文JavaScript的全局对象 文档包含通过解析HTML初始化的DOM Screen描述物理显示器的全屏
有关这些对象的详细信息,请参阅W3C和Mozilla参考文献。三者之间最基本的关系是每个浏览器选项卡都有自己的窗口,而一个窗口又有一个窗口。文档和窗口。屏幕上的属性。浏览器选项卡的窗口是全局上下文,所以document和screen指的是window。文档和window.screen。关于这三个对象的更多细节,请参见Flanagan的《JavaScript:权威指南》。
窗口
每个浏览器选项卡都有自己的顶级窗口对象。每个<iframe>(和已弃用的<frame>)元素也有自己的窗口对象,嵌套在父窗口中。每个窗口都有自己独立的全局对象。窗口。Window总是指窗口,但是Window。父和窗口。Top可能指的是封闭窗口,允许访问其他执行上下文。除了下面描述的文档和屏幕外,窗口属性还包括
setTimeout()和setInterval()将事件处理程序绑定到计时器 location给出当前URL 使用back()和forward()方法给出选项卡的可变历史 描述浏览器软件的导航器
文档
每个窗口对象都有一个要呈现的文档对象。这些对象之所以容易混淆,部分原因是HTML元素在分配唯一id时被添加到全局对象中。例如,在HTML片段中
<body>
<p id="holyCow"> This is the first paragraph.</p>
</body>
段落元素可以被下列任意元素引用:
window.holyCow or window[“holyCow”] document.getElementById(“holyCow”) document.querySelector(“#holyCow”) document.body.firstChild 文档.身体.儿童[0]
屏幕
window对象还有一个screen对象,其属性描述物理显示:
屏幕属性宽度和高度是全屏 屏幕属性availWidth和availHeight省略了工具栏
显示呈现的文档的屏幕部分是JavaScript中的视口,这可能会令人困惑,因为在讨论与操作系统的交互时,我们将应用程序的屏幕部分称为窗口。任何文档元素的getBoundingClientRect()方法都将返回一个对象,该对象具有上、左、下和右属性,用于描述元素在视口中的位置。
窗口对象就像它们的根,文档和屏幕都是它的属性。屏幕只是用户显示区域,文档是包含所有html元素及其类和属性的DOM。窗口是父对象,而它们是子对象。 https://developer.mozilla.org/en-US/docs/Web/API/Window https://developer.mozilla.org/en-US/docs/Web/API/Window/screen
window是主要的JavaScript对象根,也就是浏览器中的全局对象,它也可以被视为文档对象模型的根。您可以作为窗口访问它。
窗口。Screen或只是Screen是一个关于屏幕物理尺寸的小信息对象。
窗口。document或仅仅是document是潜在可见(或者更好:呈现)的文档对象模型/DOM的主要对象。
因为window是全局对象,你可以用属性名引用它的任何属性——所以你不需要写下window。-它将由运行时计算出来。