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()來取消該定時