• 了解 JavaScript 窗口对象



    每个 JavaScript 环境都有一个 全局对象。在全局范围内创建的任何变量实际上都是这个对象的属性,任何函数都是它的方法。在浏览器环境中,全局对象是 window对象,它表示包含网页的浏览器窗口。

    在本文中,我们将介绍 Window 对象的一些重要用途:

    -浏览器对象模型

    • 在 JavaScript 中获取浏览器信息
    • 获取和使用浏览器历史记录
    • 创建和控制窗口
    • 获取屏幕尺寸和显示细节

    浏览器对象模型

    浏览器对象模型(或简称 BOM)是包含有关浏览器和计算机屏幕信息的属性和方法的集合。例如,我们可以找出正在使用哪个浏览器查看页面(尽管这种方法不可靠)。我们还可以找出查看它的屏幕尺寸,以及在当前页面之前访问过哪些页面。如果您讨厌用户,它也可以用于创建弹出窗口的相当可疑的做法。

    BOM 没有官方标准,尽管所有主要浏览器都支持许多属性和方法,从而形成了一种事实上的标准。这些属性和方法可通过 window 对象获得。每个浏览器窗口、选项卡、弹出窗口、框架和 iframe 都有一个 window 对象。

    BOM 仅在浏览器环境中才有意义

    请记住,JavaScript 可以在不同的环境中运行。BOM 仅在浏览器环境中才有意义。这意味着其他环境(例如 Node.js)可能没有 window 对象,尽管它们仍然有一个全局对象;例如,Node.js 有一个名为 global.

    如果不知道全局对象的名称,也可以 this 在全局范围内使用关键字来引用。以下代码提供了一种将变量分配给 global 全局对象的快速方法:

    const global = this; 
    
    • 1

    全局变量

    全局变量是不使用const, letvar关键字创建的变量。可以在程序的所有部分访问全局变量。

    全局变量是全局对象的实际属性。在浏览器环境中,全局对象就是 window 对象。这意味着创建的任何全局变量实际上都是 window 对象的属性,如下例所示:

    x = 6;window.x 
    // 6 
    
    • 1
    • 2

    一般来说,你应该在不使用 window 对象的情况下引用全局变量;它的输入更少,您的代码将在环境之间更具可移植性。一个例外是如果您需要检查是否已定义全局变量。例如,如果 x 尚未定义,以下代码将抛出 ReferenceError:

    if (x) {} 
    
    • 1

    但是,如果变量作为window 对象的属性被访问,那么代码仍然可以工作,就像 window.x 简单地 return 一样false,这意味着代码块不会被评估:

    if (window.x) { 
    } 
    
    • 1
    • 2

    我们已经遇到的一些函数,例如 parseInt() and isNaN(),实际上是全局对象的方法,在浏览器环境中,它们使它们成为 window对象的方法:

    像变量一样,习惯上省略通过 window对象访问它们。

    对话框

    在浏览器中生成对话框的函数有 3 个alert()confirm()prompt()。这些不是 ECMAScript 标准的一部分,尽管所有主流浏览器都支持它们作为 window对象的方法。

    <
  • 相关阅读:
    第83步 时间序列建模实战:Catboost回归建模
    Edge使用猴油脚本实战(实验室安全考试系统刷在线时长——网站永久自动刷新)
    leetcode-链表经典题
    还在不停切换聊天窗口进行回复的客服请看过来
    【股票价格预测】基于改进莱维飞行和混沌映射的粒子群优化BP神经网络预测股票价格研究(Matlab代码实现)
    让iframe为项目增加更多可能性
    练习动画最好的方式:用GSAP实现可滚动和可拖动的时间轴
    Neodynamic Barcode Professional for Windows Forms 14.0
    git commit 不进入 Vim 编辑模式,提示 ihint: Waiting for your editor to close the file...
    macOS下由yarn与npm差异引发的Electron镜像地址读取问题
  • 原文地址:https://blog.csdn.net/web220507/article/details/127758153