Windows 对象

了解 Window 对象

JavaScript 中的 window 对象是一个包罗万象的对象,原因有一下三点:

  1. Web 浏览器就是将 Global 全局对象作为 window 对象的一部分加以实现。
  2. DOM 中的核心对象 document ,作为 window 对象的一个属性而存在。
  3. window 对象的属性还包括了 BOM 提供的对象:location navigator screen history 和 window。

在 ECMAScript 规范中,JS对象可分为三类:

  • 本地对象:Object、Function、Array、String、Boolean、Number、Date、RegExp、Error、EvalError、RangeError、ReferenceError、SyntaxError、TypeError、URIError 和 开发者自定义的对象。
  • 内置对象(开发者不必明确实例化内置对象,它已被实例化了):
    • Global 对象:
      顶层函数(全局函数):decodeURI()、decodeURIComponent()、encodeURI()、encodeURIComponent()、escape()、unescape() 、eval()、getClass()、isFinite()、isNaN()、Number()、parseFloat()、parseInt()、String()
      顶层属性(全局属性):Infinity、java、NaN、Packages、undefined

    • Math 对象:valueOf()、max(x,y)、floor(x)、random()、......

  • 宿主对象:所有 BOM 和 DOM 对象都是宿主对象。
    • 由 DOM 提供的类型有:Node、Document、Element、Text、Comment、CDATASection、DocumentType、DocumentFragment、Attr
    • 由 BOM 提供的对象有:location、navigator、screen、history 和 window

而这些对象,全都可以在 window 对象中找到。console.log(window)

为了理解 window 对象,我们必须理清楚一下四个概念:

  1. BOM:(浏览器对象模型)是为了操作浏览器而定义的一组接口。是各个浏览器厂商根据 DOM 在各自浏览器上的实现,表现为不同浏览器定义有差别,实现方式不同。
  2. DOM:(文档对象模型)是为了操作文档而定义的一组接口。是 W3C 的标准,即所有浏览器公共遵守的标准
  3. ECMAScript:JS的核心语法,提供了 JS 的语法和规范
  4. document: DOM 树中的一个重要的 node(节点),通常为根节点。由于一个页面可能有多个 <iframe/> ,所以一个页面可以有多个document节点。document 也是 BOM 中 window 对象下的子对象。
  5. Global 全局对象

window 的广义和狭义的理解

  1. 广义:window 作为一个对象,被 Web 浏览器定义为 全局对象使用,他包换了 本地对象、内置对象、宿主对象 的所有 类型 和 方法。作为全局对象,在调用其他的类型、方法 和 属性时,可以省略 window. 这个前缀
    console.log(window.document === document) // true
  2. 狭义:从字面意思理解,window 就是窗口的意思,记录着窗口的相关信息,这些信息有 BOM 提供,详细内容请查看《BOM》
posted @ 2021-07-23 15:58  真的想不出来  阅读(371)  评论(0编辑  收藏  举报