JavaScript的基礎組成部分
1.核心(ECMAScript)
2.文檔對象模型(DOM)
3.瀏覽器對象模型(BOM)
(1)BOM
1)BOM是瀏覽器對象模型碍庵,和瀏覽器關系密切逢勾,用來獲取或設置瀏覽器的屬性、行為侵佃,如新建窗口苔埋、打開新選項卡(標簽頁)塞关、關閉頁面、把網(wǎng)頁設為主頁絮供、加入收藏夾衣吠、獲取屏幕分辨率、瀏覽器版本號等壤靶。
2)BOM沒有相關標準缚俏。由于沒有標準,不同的瀏覽器實現(xiàn)同一功能萍肆,可以需要不同的實現(xiàn)方式袍榆,不同的瀏覽器的實現(xiàn)功能所需要的JavaScript代碼可能不相同。
3)BOM是由navigator塘揣、history包雀、screen、location亲铡、window五個對象組成的才写,最根本對象是window葡兑。
內(nèi)置對象總結:
1.window對象:BOM的核心對象是window,它表示瀏覽器的一個實例
window的主要屬性:
window的主要方法:
2.location對象:提供了與當前窗口中加載的文檔有關的信息赞草,還有一些導航功能讹堤,值得注意的是location既是window對象的屬性,又是document對象的屬性厨疙,既window.location和document.location 引用的是同一個對象
window.location ="http://www.666.com"; //頁面跳轉到該網(wǎng)址
location.; //頁面跳轉到該網(wǎng)址
location.assign("http://www.666.com"); //頁面跳轉到該網(wǎng)址
前兩種方法其實底層也是調(diào)用了location.assign()洲守,即三者結果是一樣的。
注:這三種方法跳轉之后可以通過后退按鈕返回到跳轉之前的頁面沾凄。
location.replace("http://www.666.com"); //頁面跳轉到該網(wǎng)址,跳轉之后不可返回前一頁面
3.navigator對象:該對象里面保存著瀏覽器的各種信息梗醇,判斷瀏覽器的各種信息就是從該對象里的屬性來讀取.
4.history對象:該對象保存著用戶上網(wǎng)的歷史記錄,從窗口被打開的那一刻算起撒蟀。出于安全考慮叙谨,開發(fā)人員不能知道用戶瀏覽過的網(wǎng)址的具體url,但是我們可以通過下面方法在不知道具體歷史url的情況下控制用戶頁面前進或后退保屯。
history.go(-1); //頁面后退一頁
history.go(1); //頁面前進一頁
history.go("666"); //跳轉到距當前頁面最近的包含666字符串的頁面手负,可能前進可能后退。
//下面這兩個方法對應history.go()的前進和后退姑尺。
history.back(1); //后退一頁
history.forward(1) //前進一頁
2竟终、DOM
1)DOM是文檔對象模型,HTML 和 XML 的應用程序接口(API)股缸,用來獲取或設置文檔中標簽的屬性衡楞,和文檔有關岔霸,這里的文檔指的是網(wǎng)頁图张,也就是HTML文檔。網(wǎng)頁是由服務器發(fā)送給客戶端瀏覽器的陪每,無論用什么瀏覽器镰惦,接收到的HTML都是一樣的迷守,所以DOM和瀏覽器無關,它關注的是網(wǎng)頁本身的內(nèi)容旺入。
2)DOM是W3C的標準兑凿。
3)DOM最根本對象是document(實際上是window.document)
- DOM是一種基于樹的API文檔,它要求在處理過程中整個文檔都表示在存儲器中
主要的接口有:
1):Node接口:它是文檔中節(jié)點的基類型茵瘾。定義了基本的訪問和改變文檔結構的方法礼华。
2):Document接口:它代表整個文檔∞置兀可創(chuàng)建文檔中的各種節(jié)點(元素圣絮、注釋、處理指令等)雕旨,創(chuàng)建的節(jié)點中帶有一個OwnerDoculnent屬性表示創(chuàng)建它們的Document對象扮匠。
3):DocumentFragment接口:它代表文檔樹的子樹捧请,相當一個小型文檔。
4):Attr接口:它代表元素節(jié)點的屬性棒搜。有意思的是它并不認為是該元素節(jié)點的子節(jié)點疹蛉,不構成DOM樹的一部分。同時也不是DocumentFragment節(jié)點的直接子節(jié)點力麸。
5):CharacterData接口:它維護了DOMsitrgn字符串并提供讀寫操作的接口可款。但不直接對應文檔的某種類型節(jié)點。
6):Text接口:它從CharacterData繼承而來末盔。代表元素或屬性的一段連續(xù)的文本內(nèi)容筑舅。它有一個派生的接口CDATAsection座慰,目的是:CDATASeciton節(jié)點的內(nèi)容將不會作任何轉化;使用Node中的nomraliez方法時相鄰的Text節(jié)點會合并成一個節(jié)點陨舱,但使用CDATASeciton可避免合并。
7):Comment接口:它也從CharacterData繼承而來版仔。代表注釋中的文本內(nèi)容游盲。
8):NodeList接口:用于管理有序的節(jié)點集。
9):Entity接口:它代表實體;EntityReference代表實體的引用蛮粮。
10):NamedNodeMap接口:用于管理無序的節(jié)點集益缎。
11):DOMImplementation接口:它提供與DOM模型的實例無關的接口。CreateDocument可創(chuàng)建一個Document對象;haseFature可判斷DOM實現(xiàn)是否支持某一模塊然想。
12):Notation接口:它代表文檔中的符號定義莺奔。
13):ProcessingInstruction接口:它代表處理指令。
14):DOMException接口:異常處理变泄。由于程序中的邏輯錯誤令哟、數(shù)據(jù)丟失或DOM實現(xiàn)本身不穩(wěn)定引起的錯誤。在程序處理過程中妨蛹,由方法返回一個錯誤值屏富。