Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图理解js中窗口和文档对象之间的区别_Javascript - Fatal编程技术网

Javascript 试图理解js中窗口和文档对象之间的区别

Javascript 试图理解js中窗口和文档对象之间的区别,javascript,Javascript,我试图理解js中窗口和文档对象之间的区别。我在网上查过了,但我还是不太清楚。据我所知:窗口就像一个超级文档,它包含文档对象。因此,如果我使用firefox打开一个页面:localhost/test.js,我可以说浏览器:firefox是窗口对象,文件test.js是文档对象吗?非常详细的解释: 基本上,窗口是浏览器的窗口,文档是其中的HTML页面。 在浏览器中运行的JavaScript将窗口作为其顶层。这意味着全局变量将成为窗口的属性: // this code is not inside a

我试图理解js中窗口和文档对象之间的区别。我在网上查过了,但我还是不太清楚。据我所知:窗口就像一个超级文档,它包含文档对象。因此,如果我使用firefox打开一个页面:localhost/test.js,我可以说浏览器:firefox是窗口对象,文件test.js是文档对象吗?

非常详细的解释:

基本上,窗口是浏览器的窗口,文档是其中的HTML页面。

在浏览器中运行的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;