前言每个JavaScript环境都有一个全局对象(globalobject)。在全局范围内创建的任何变量实际上都是这个对象的属性,任何函数都是它的方法。在浏览器的上下文中,全局对象是window对象,它表示包含网页的浏览器窗口。在本文中,我们将介绍Window对象的一些重要用途:浏览器对象模型(BrowserObjectModel)获取浏览器信息获取并使用浏览器历史对象来创建和控制浏览器窗口获取屏幕大小和显示细节浏览器对象模型TheBrowserObject模型(简称BOM)是包含有关浏览器和计算机屏幕的信息的属性和方法的集合。例如,我们可以找出正在使用哪个浏览器查看页面,尽管这种方法并不可靠。我们还可以找出查看它的屏幕尺寸,以及在当前页面之前访问过哪些页面。如果您想惹恼用户,它也可以用于创建弹出窗口的相当可疑的做法。BOM并没有官方的标准,虽然很多的属性和方法都被各大浏览器所支持,但它已经成为了事实上的标准。这些属性和方法由window对象提供,每个浏览器窗口、标签页、弹出窗口、frame、iframe都有一个window对象。浏览器环境请记住,JavaScript可以在不同的环境中运行。BOM仅在浏览器上下文中有意义。这意味着其他环境可能没有窗口对象,尽管它们仍然有一个全局对象。例如,Node.js有一个名为global的对象。如果不知道全局对象的名称,可以在全局范围内使用关键字this来引用全局对象。以下代码提供了将变量global分配给全局对象的快捷方式:constglobal=this;深入了解全局变量全局变量是在不使用const、let或var关键字的情况下创建的变量。可以在整个程序中访问全局变量。全局变量是全局对象的属性。在浏览器环境中,全局对象是窗口对象。这意味着任何创建的全局变量都是窗口对象的属性,从下面的例子可以看出:x=6;//创建了全局变量>>6window.x//同一个变量可以作为访问的window对象的属性>>6//window.x===x>>true正常情况下引用全局变量应该不用使用窗口对象。这减少了输入并使您的代码在不同环境中更具可移植性。一个例外是如果您需要检查是否已定义全局变量。例如,如果x没有被定义,下面的代码会抛出一个ReferenceError:.x会直接返回false,也就是说代码块不会执行:if(window.x){//dosomething}parseInt()和isNaN()等一些函数是全局对象的方法。在浏览器环境中,这些是窗口对象的方法。与变量一样,通常会忽略直接通过窗口对象访问它们。对话框在浏览器中,有三个函数用于生成对话框:alert()、confirm()和prompt()。这些都不是ECMAScript标准的一部分,尽管所有主流浏览器都支持它们作为窗口对象的方法。AlertDialogwindow.alert()暂停程序执行并在对话框中显示消息。该消息作为方法的参数提供,该方法始终返回未定义的:window.alert('Hello');>>undefinedConfirm对话框window.confirm()方法停止程序执行并显示一个确认对话框。显示作为参数提供的信息并提供确认或取消选项。如果用户点击确定,返回一个布尔值true,如果用户点击取消,返回一个布尔值false:window.confirm('Doyouwishtocontinue?');>>undefinedPromptdialogwindow.prompt()方法将停止程序的执行,并显示一个对话框。显示作为参数提供的信息,以及允许用户输入文本的输入字段。当用户单击“确定”时,文本将作为字符串返回。如果用户点击取消,将返回null:window.prompt('请输入您的姓名:');谨慎使用本机对话框。再次值得强调的是,这些方法会在程序执行过程中停止程序。这意味着在调用该方法的那一刻,一切都停止处理,直到用户单击“确定”或“取消”。如果程序需要同时处理其他事情,或者程序正在等待回调函数,这可能会导致问题。在某些情况下,可以使用此功能,因为它具有一些优点。例如,window.confirm()对话框可用作最终确认以检查用户是否要删除资源。这将阻止程序继续执行并阻止删除资源,直到用户决定如何处理它。还值得注意的是,大多数浏览器允许用户禁用任何重复出现的对话框,这意味着该功能不可靠。浏览器信息window对象具有一系列属性和方法,可提供有关用户浏览器的信息。Navigator对象window对象有一个名为navigator的属性,它返回对Navigator对象的引用。Navigator对象包含有关正在使用的浏览器的信息。上面的userAgent属性将返回有关正在使用的浏览器和操作系统的信息。例如,如果我运行以下代码,它会显示我在MacOS上使用Safari10:window.navigator.userAgent>>"Mozilla/5.0(Macintosh;IntelMacOSX10_12_3)AppleWebKit/602.4.8(KHTML,如Gecko)Version/10.0.3Safari/602.4.8"但是,不要依赖此信息,因为用户可以修改它以伪装成另一个浏览器。也很难理解返回的字符串,因为所有浏览器都在某种程度上伪装成其他浏览器。例如,出于旧版Netscape兼容性原因,每个浏览器都会在其自己的userAgent属性中包含Mozilla字符串。userAgent已从官方标准中弃用,但在所有主要浏览器中仍然得到很好的支持。URLwindow.location是一个包含有关当前页面URL信息的对象。它包含提供有关URL不同部分的信息的属性。href属性以字符串形式返回完整的URL:window.location.href>>"标签节点和一个文本子节点:document.write('
document.write()的使用非常不受欢迎,因为它只能通过在HTML文档中混合JavaScript来使用。仍然有一些极其罕见的合法用途,但优秀的程序员很少需要使用它。综上所述,以上就是关于window对象的全部主要内容,感谢阅读。如果你学到了知识,欢迎点赞收藏转发~Hello,world!
');document.write()方法也可以在documentdocument.write("Hello,world!")
