系统学习BOM

134 阅读2分钟

这是我参与更文挑战的第1天,活动详情查看:更文挑战

初学前端的时候就听过 BOM 和 DOM,随着学习的深入,对他们的了解越来越多,应对工作自然没有问题,但一直都没有系统学过。今天对着红宝书,做一次查缺补漏。

Screen Shot 2021-06-18 at 11.21.13 PM.png

BOM(Browser Object Model,浏览器对象模型)是前端运行的浏览器环境,提供给 JS 调用浏览器能力的方法,主要包括 window、location、navigator、history 和 screen(不常用)。

1. window

window 是 JS 的全局环境,非严格模式下直接调用中的 this 就指向 window,window 主要提供如下几类方法:

  • open:打开新的标签页
  • setTimeout/setInterval:延时执行函数
  • alert/confirm/promot/console:浏览器对话框和控制台输出

window 允许新增属性,像 jQuery 这类库就是暴露一个对象挂载在 window 上,方便使用。

2. location

location 用于地址栏相关的操作,可以通过它获取当前的网址,也可以跳转网页,主要方法如下:

  • href:可读可写,读时返回当前 URL,给它赋值时跳转到目标页
  • pathname:获取 URL 路径
  • reload:刷新当前页

3. navigator

navigator 是导航相关,常用它判断浏览器语言、获取 UA 等,常用方法是:

  • platform:获取操作系统类型;
  • userAgent:获取 UA;
  • onLine:判断是否离线,在需要判断是否断网的需求里非常有用

4. history

history 是浏览器历史相关,利用它可以使用 JS 进行前进后退,主要方法是:

  • go:前进到某页,如果是负整数,则是后退几页
  • back:后退一页,相当于 history.go(-1)
  • forward:前进一页,相当于 history.go(1)

5. screen

screen 不太常用,它保持显示器相关信息,例如如下两个属性可以获取显示器的分辨率:

  • width:显示器像素宽度
  • height:显示器像素高度

了解了上述这些,就比较全面掌握 BOM 的基本构成了,更细节的 api 用法,我们可以借助 MDN 文档进行强化。

参考:红宝书第8章