Javascript 试图理解js中窗口和文档对象之间的区别
我试图理解js中窗口和文档对象之间的区别。我在网上查过了,但我还是不太清楚。据我所知:窗口就像一个超级文档,它包含文档对象。因此,如果我使用firefox打开一个页面:localhost/test.js,我可以说浏览器:firefox是窗口对象,文件test.js是文档对象吗?非常详细的解释: 基本上,窗口是浏览器的窗口,文档是其中的HTML页面。Javascript 试图理解js中窗口和文档对象之间的区别,javascript,Javascript,我试图理解js中窗口和文档对象之间的区别。我在网上查过了,但我还是不太清楚。据我所知:窗口就像一个超级文档,它包含文档对象。因此,如果我使用firefox打开一个页面:localhost/test.js,我可以说浏览器:firefox是窗口对象,文件test.js是文档对象吗?非常详细的解释: 基本上,窗口是浏览器的窗口,文档是其中的HTML页面。 在浏览器中运行的JavaScript将窗口作为其顶层。这意味着全局变量将成为窗口的属性: // this code is not inside a
在浏览器中运行的JavaScript将窗口作为其顶层。这意味着全局变量将成为窗口的属性:
// 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、子项、子节点。。。函数,因为窗口不是Html元素,而文档是。JavaScript应用程序具有上下文,定义值的范围。浏览器中的“根”或“全局”对象是
window
窗口
对象有一个名为文档
的属性(变量),它存储文档的表示形式。文档保存当前加载文档的模型表示(例如标题
,锚定
等)。窗口
对象表示显示文档的浏览器窗口
此外,如果您在不在函数中的脚本中定义了以下内容:
实际上,您所做的是在全局对象中定义一个变量。在浏览器中,这将出现在窗口中
因此window.x
的值为10。表示当前的浏览上下文。它包含诸如窗口.位置
,窗口.历史
,窗口.屏幕
,窗口.状态
,或窗口.文档
。此外,它还包含有关帧设置的信息(帧设置、frames
、parent
、top
、self
属性),并包含重要的接口,如applicationCache
、XMLHttpRequest
、setTimeout
、escape
、console
或localStorage
。最后但并非最不重要的一点是,它充当JavaScript的全局作用域,即所有全局变量都是它的属性
相反,(窗口。
)表示当前加载在窗口中的DOM,它只是其中的一部分。文档包含的信息包括documentElement
(通常为
)、表单
集合、cookie
字符串、其位置
或其readyState
。它还使用getElementById
或addEventListener
等方法实现不同的接口(可能有多个,例如通过ajax获得的XML文档),浏览器选项卡中的每个文档是否共享同一浏览器窗口?如果一个页面可以看到另一个页面,这听起来很不安全。许多人说它是开放的,但不知道它是如何开放的。我希望我的问题没有暴露出安全漏洞。
var x = 10;