BOM的全称是Browser Object Model,被译为浏览器对象模型
BOM提供了独立于HTML页面内容,而与浏览器相关的一系列对象,主要被用于管理浏览器窗口及与浏览器窗口之间通讯等功能
BOM由一系列对象构成,这些对象能够简单理解为是由各个浏览器所提供的前端
BOM中最核心的对象就是Window对象,该对象表示运行HTML页面的浏览器窗口
在浏览器环境中,Window对象具备双重角色,该对象既是容许JavaScript逻辑访问浏览器窗口的一个对象,又是ECMAScript规范中的Global全局对象
在浏览器环境中运行JavaScript逻辑时,在全局做用域中定义的对象、变量和函数都是Window对象的属性和方法
也能够经过Window对象访问Global全局对象的属性和方法。浏览器
在浏览器环境中,因为ECMAScript规范中Window对象表明了Global全局对象,所以全部定义在全局做用域中的变量和函数,均可以经过Window对象的属性和方法方式访问缓存
var name='前端'; function fun(){ console.log('this is function'); } //window对象的属性和方法方式访问 console.log(window.name); window.fun();
Window对象的属性数量较多,包含了浏览器窗口的基本信息、也包含了一些复杂的信息。能够人为将Window对象分为如下三类:
1.BOM中其余对象,例如Navigator对象等
2.一些有关浏览器窗口的基本信息等,这些属性多属于DOM 0级别,并非W3C标准规范
3.包含了大量有关HTML5版本新增的功能等服务器
Window对象提供的属性中能够获取当前浏览器窗口的宽度和高度网络
Window对象的self属性返回当前浏览器窗口的只读属性,self属性返回的是Window对象的引用app
console.log(window==window.self);
Window对象的方法函数
Navigator对象包含了一些有关浏览器状态的信息。能够经过window.navigator属性获得Navigator对象
Navigator对象提供一系列经常使用属性,获取当前浏览器的信息this
Navigator对象的userAgent属性返回由客户机发送服务器的user-agent头部的值,userAgent属性是一个只读的字符串,声明了浏览器用于HTTP请求的用户代理头的值
经过userAgent属性获取用户当前使用的浏览器产品,提供浏览器兼容解决方案
经过userAgent属性获取用户当前使用的操做系统信息操作系统
History对象包含用户在浏览器中访问过的URL(网址)代理
console.log('用户访问的网址数量为:'+history.length);
forward():实现跳转下一个页面,做用和浏览器的前进按钮同样
back():实现跳转上一个页面,做用和浏览器的回退按钮同样
go():实现跳转到指定的页面,若是为负数表示后退,若是为正数表示前进
Location对象包含了浏览器的地址栏中的信息,该对象主要用于获取和设置地址
Location对象很特别,由于该对象既是Window对象的属性,又是Document对象的属性
console.log(window.location==document.location);//true
Location对象不只存储了地址栏中的信息,还提供了解析功能,能够经过不一样的Location对象的属性访问不一样的地址栏中的信息
定时器的具体方法由Window对象提供
setTimeout()方法设置一个定时器,该定时器在定时器到期后执行一个函数或指定的一段代码
var timeoutID=scope.setTimeout(function,delay); function:要调用的函数或要执行的代码 delay:延迟的毫秒数(一秒等于1000毫秒),函数的调用会在该延迟以后发生。若是省略该参数,delay取默认值0
该方法的返回值timeoutID是一个正整数,表示定时器的编号。这个值能够传递给clearTimeout()来取消该定时
setInterval()方法重复调用一个函数或执行一个代码段,在每次调用之间具备固定的时间延迟
var timeoutID=scope.setInterval(function,delay);
function:要调用的函数或要执行的代码delay:延迟的毫秒数(一秒等于1000毫秒),函数的调用会在该延迟以后发生,若是省略该参数,delay取默认值0该方法的返回值timeoutID是一个正整数,表示定时器的编号,这个值能够传递给clearInterval()来取消该定时