JavaScript的基礎(chǔ)組成部分
1.核心(ECMAScript)
2.文檔對(duì)象模型(DOM)
3.瀏覽器對(duì)象模型(BOM)
(1)BOM
???????? 1)BOM是瀏覽器對(duì)象模型蝠筑,和瀏覽器關(guān)系密切,用來獲取或設(shè)置瀏覽器的屬性冯勉、行為荚藻,如新建窗口、打開新選項(xiàng)卡(標(biāo)簽頁)、關(guān)閉頁面拧抖、把網(wǎng)頁設(shè)為主頁、加入收藏夾免绿、獲取屏幕分辨率唧席、瀏覽器版本號(hào)等。
???????? 2)BOM沒有相關(guān)標(biāo)準(zhǔn)嘲驾。由于沒有標(biāo)準(zhǔn)淌哟,不同的瀏覽器實(shí)現(xiàn)同一功能,可以需要不同的實(shí)現(xiàn)方式辽故,不同的瀏覽器的實(shí)現(xiàn)功能所需要的JavaScript代碼可能不相同徒仓。
???????? 3)BOM是由navigator、history誊垢、screen掉弛、location、window五個(gè)對(duì)象組成的喂走,最根本對(duì)象是window狰晚。
內(nèi)置對(duì)象總結(jié):
???????? 1.window對(duì)象:BOM的核心對(duì)象是window,它表示瀏覽器的一個(gè)實(shí)例
???????? window的主要屬性:
window的主要方法:
???????? 2.location對(duì)象:提供了與當(dāng)前窗口中加載的文檔有關(guān)的信息缴啡,還有一些導(dǎo)航功能壁晒,值得注意的是location既是window對(duì)象的屬性,又是document對(duì)象的屬性业栅,既window.location和document.location 引用的是同一個(gè)對(duì)象
????????????????? window.location ="http://www.666.com";??? //頁面跳轉(zhuǎn)到該網(wǎng)址
????????????????? location.;????? //頁面跳轉(zhuǎn)到該網(wǎng)址
????????????????? location.assign("http://www.666.com");???? //頁面跳轉(zhuǎn)到該網(wǎng)址
????????????????? 前兩種方法其實(shí)底層也是調(diào)用了location.assign()秒咐,即三者結(jié)果是一樣的。
????????????????? 注:這三種方法跳轉(zhuǎn)之后可以通過后退按鈕返回到跳轉(zhuǎn)之前的頁面碘裕。
????????????????? location.replace("http://www.666.com");?? //頁面跳轉(zhuǎn)到該網(wǎng)址,跳轉(zhuǎn)之后不可返回前一頁面
???????? 3.navigator對(duì)象:該對(duì)象里面保存著瀏覽器的各種信息携取,判斷瀏覽器的各種信息就是從該對(duì)象里的屬性來讀取.
???????? 4.history對(duì)象:該對(duì)象保存著用戶上網(wǎng)的歷史記錄,從窗口被打開的那一刻算起帮孔。出于安全考慮雷滋,開發(fā)人員不能知道用戶瀏覽過的網(wǎng)址的具體url,但是我們可以通過下面方法在不知道具體歷史url的情況下控制用戶頁面前進(jìn)或后退文兢。
????????????????? history.go(-1);?? //頁面后退一頁
????????????????? history.go(1);??? //頁面前進(jìn)一頁
????????????????? history.go("666");?? //跳轉(zhuǎn)到距當(dāng)前頁面最近的包含666字符串的頁面晤斩,可能前進(jìn)可能后退。
????????????????? //下面這兩個(gè)方法對(duì)應(yīng)history.go()的前進(jìn)和后退姆坚。
????????????????? history.back(1);? //后退一頁
????????????????? history.forward(1)? //前進(jìn)一頁
2澳泵、DOM
???????? 1)DOM是文檔對(duì)象模型,HTML 和 XML 的應(yīng)用程序接口(API)兼呵,用來獲取或設(shè)置文檔中標(biāo)簽的屬性兔辅,和文檔有關(guān)腊敲,這里的文檔指的是網(wǎng)頁,也就是HTML文檔维苔。網(wǎng)頁是由服務(wù)器發(fā)送給客戶端瀏覽器的碰辅,無論用什么瀏覽器,接收到的HTML都是一樣的介时,所以DOM和瀏覽器無關(guān)乎赴,它關(guān)注的是網(wǎng)頁本身的內(nèi)容。
???????? 2)DOM是W3C的標(biāo)準(zhǔn)潮尝。
???????? 3)DOM最根本對(duì)象是document(實(shí)際上是window.document)
4) DOM是一種基于樹的API文檔榕吼,它要求在處理過程中整個(gè)文檔都表示在存儲(chǔ)器中
主要的接口有:
????????????????? 1):Node接口:它是文檔中節(jié)點(diǎn)的基類型。定義了基本的訪問和改變文檔結(jié)構(gòu)的方法勉失。
????????????????? 2):Document接口:它代表整個(gè)文檔羹蚣。可創(chuàng)建文檔中的各種節(jié)點(diǎn)(元素乱凿、注釋顽素、處理指令等),創(chuàng)建的節(jié)點(diǎn)中帶有一個(gè)OwnerDoculnent屬性表示創(chuàng)建它們的Document對(duì)象徒蟆。
????????????????? 3):DocumentFragment接口:它代表文檔樹的子樹胁出,相當(dāng)一個(gè)小型文檔。
????????????????? 4):Attr接口:它代表元素節(jié)點(diǎn)的屬性段审。有意思的是它并不認(rèn)為是該元素節(jié)點(diǎn)的子節(jié)點(diǎn)全蝶,不構(gòu)成DOM樹的一部分。同時(shí)也不是DocumentFragment節(jié)點(diǎn)的直接子節(jié)點(diǎn)寺枉。
????????????????? 5):CharacterData接口:它維護(hù)了DOMsitrgn字符串并提供讀寫操作的接口抑淫。但不直接對(duì)應(yīng)文檔的某種類型節(jié)點(diǎn)。
????????????????? 6):Text接口:它從CharacterData繼承而來姥闪。代表元素或?qū)傩缘囊欢芜B續(xù)的文本內(nèi)容始苇。它有一個(gè)派生的接口CDATAsection,目的是:CDATASeciton節(jié)點(diǎn)的內(nèi)容將不會(huì)作任何轉(zhuǎn)化;使用Node中的nomraliez方法時(shí)相鄰的Text節(jié)點(diǎn)會(huì)合并成一個(gè)節(jié)點(diǎn)筐喳,但使用CDATASeciton可避免合并催式。
????????????????? 7):Comment接口:它也從CharacterData繼承而來。代表注釋中的文本內(nèi)容避归。
????????????????? 8):NodeList接口:用于管理有序的節(jié)點(diǎn)集荣月。
????????????????? 9):Entity接口:它代表實(shí)體;EntityReference代表實(shí)體的引用。
????????????????? 10):NamedNodeMap接口:用于管理無序的節(jié)點(diǎn)集槐脏。
???????? ???????? 11):DOMImplementation接口:它提供與DOM模型的實(shí)例無關(guān)的接口喉童。CreateDocument可創(chuàng)建一個(gè)Document對(duì)象;haseFature可判斷DOM實(shí)現(xiàn)是否支持某一模塊。
????????????????? 12):Notation接口:它代表文檔中的符號(hào)定義顿天。
????????????????? 13):ProcessingInstruction接口:它代表處理指令堂氯。
????????????????? 14):DOMException接口:異常處理。由于程序中的邏輯錯(cuò)誤牌废、數(shù)據(jù)丟失或DOM實(shí)現(xiàn)本身不穩(wěn)定引起的錯(cuò)誤咽白。在程序處理過程中,由方法返回一個(gè)錯(cuò)誤值鸟缕。