• 了解 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对象的方法。

    <
  • 相关阅读:
    关于C++的隐藏 (hidden),重载(overload),重写(override)小结。
    error_ Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“_ h
    华为云Stack南向开放框架,帮助生态伙伴高效入云
    EasyExcel实现动态表头功能
    (C语言)数据结构——冒泡排序和快速排序(超详解)
    【MySQL】增删查改CURD(基础版)
    基于JAVA评标专家管理信息系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
    C++ Reference: Standard C++ Library reference: Containers: deque: deque: erase
    mysql函数
    UMC中命令管理模块功能调整说明
  • 原文地址:https://blog.csdn.net/web220507/article/details/127758153