BOM是Browser Object Model的簡寫,意思是流量器對象模型,BOM操作就是通路和操作浏覽器視窗的模型。
BOM整體對象圖:

核心是window對象;
以下有特殊雙重身份:
window對象既是ECMAScript規範中的Global對象,也是BOM中的頂級對象;
document對象既是BOM頂級對象的一個屬性,也是DOM模型中的頂級對象
location對象既是window對象的屬性,同時也是document對象的屬性。
1_引用window對象的屬性和方法時,可以省略window。(就像Globle對象一樣)
2_在全局作用域中this和window指向同一個對象,另外,還可以使用self來引用window對象,全等關系即:this===window===self。
3_在全局作用域中定義的變量和函數也會成為window對象的屬性和方法,但是和直接在window對象上定義屬性還是有差別:
1.2.1 浏覽器整個視窗與架構
1.2.2 window作為頂層對象的主要方法:
相容性:表示視窗位置的屬性有screenLeft、screenTop、screenX、screenY、表示視窗大小的屬性有innerWidth、innerHeight、outerWidth、outerHeight,但是它們的具體含義和不同的浏覽器密切相關。在處理浏覽器差異性建議使用JS架構。
history對象儲存着從視窗被打開起的曆史記錄,每個浏覽器視窗、标簽頁、架構都有自己的history對象。
history對象的主要屬性和方法有:
location對象提供了與目前視窗中加載的文檔有關的資訊以及一些導航功能;它既是window對象的屬性,同時也是document對象的屬性.
主要屬性有:
主要方法有:
常用情況,将url後面參數鍵值對分别添加到對象中儲存。例如url?username=Games&age=31,取出args[“username”]=”Games”,args[‘age’]=31;
navigator對象用來描述浏覽器本身,包括浏覽器的名稱、版本、語言、系統平台、使用者特性字元串等資訊.
但是各個浏覽器及浏覽器的不同版本之間對這個對象的實作也不盡相同.
特性檢測:不建議直接使用navigator的方法或屬性進行檢測浏覽器版本,在使用特定方法時,如果擔心相容性,則可以使用特性檢測。
screen對象用來表明用戶端顯示器的能力。多用于測定用戶端能力的站點跟蹤工具中。
包括浏覽器視窗外部的顯示器的資訊,如像素寬度和高度等,每個浏覽器中的screen對象都包含着各不相同的屬性。
screen對象屬性有:
document對象既是BOM頂級對象的一個屬性,更是DOM模型中的頂級對象,在DOM中一起總結。