Browser Object Model

BOM是所有JavaScript的核心,所有的功能其实都建立在BOM基础之上。各浏览器提供的BOM的功能存在很大差异,BOM在HTML5中已经有很大一部分被放入了标准。

Window对象

  • window对象代表全局作用域。
  • 如果页面包括frame,则每个frame都有自己的window对象。
  • window.open()可以打开新的窗口(或tab页)

location对象

主要管理地址栏中的信息:

console.log(window.location === document.location); //true

JavaScript BOM和DOM-LMLPHP

navigator对象

管理浏览器的信息

比如:

navigator.plugins //返回插件数组
navigator.cookieEnabled //true
navigator.userAgent //"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"

详细属性参考:

https://developer.mozilla.org/zh-CN/docs/Web/API/Window/navigator

screen对象

管理显示器相关信息,比如屏幕分辨率

使用最多的是作为media query时

@media screen and (max-width: 980px)
{}

history对象

管理浏览器的访问历史记录

常见使用场景: 如react-route或vue-route中的Browser类型,在浏览器中就基于hisotry对象

Document Object Model

节点类型

  • Node类型
  • Document类型
  • Element类型
  • Attr类型
  • Text类型
  • Comment类型
  • CDATASection类型
  • DocumentTYpe类型
  • DOcumentFragment类型

DOM操作

原生JavaScript和DOM编程不在这里细说

针对DOM一直都有持续性的扩展,比如:

  • API的扩展
  • HTML5的扩展
  • DOM2和DOM3扩展(包括DOM操作函数,样式,遍历等)
05-11 16:56