JavaScripthtml
- 1 ECMAScript
- 2 DOM
- 3 BOM
接下來我們就看看,ECMAScript、DOM、BOM的由來.前端
1 JavaScript的產生程序員
我在高程3中看到JavaScript誕生於1995年。當時,JavaScript只是處理一些表單輸入驗證。在JavaScript問世以前,用戶提交表單的時候都是經過服務器來驗證的,你們能夠想到,當時的網速和如今比較應該是」慢上幾千倍吧「😨,我們做爲用戶考慮一下,好比,我們填寫一下比較大的表單,用了幾分鐘,填完了我們提交到服務器,用了30秒,而後服務器有花了20秒的時間返回給我們一個錯誤信息,說我們的郵箱地址不合適或者電話號碼不合適,我們心中或不會有千隻「羊駝」奔騰😨。web
在1995那個年代,網絡界瀏覽器商家,nb的公司有這麼兩個,瀏覽器
1995年有這麼一天,這天,遠景公司但願能有有一門語言,可以在客戶端發向服務器以前可以驗證一下表單格式和填寫,(當時的遠景公司真是前途不可限量啊😁,也可能當時被用戶噴過😂),既能夠完成前端驗證,也能夠減輕服務器壓力,以及優化交互,這個操做有如今的話說,簡直就是6666啊。 在那個用電話撥號上網的年代,可以在客戶端完成一個基本的驗證任務絕對是使人興奮啊,一時之間JavaScript成爲了瀏覽器必備的一個特點。服務器
因爲JavaScript出現併成爲瀏覽器必備特點之後,微軟的 Intenater-Explorer瀏覽器絕對要和Netscape Navigator競爭自家產品,Intenater-Explorer3加入名爲JScript的JavaScript實現,(命名爲JScript是爲了避開JavaScript版權問題😂)。以如今的眼光來看,微軟1996年8月爲進入web瀏覽器領域爲實施這個重大舉措,是致使Netscape Navigator後蒙羞的一個標誌性事件。然而也標誌着JavaScript做爲一門語言,其開發進了一大步。cookie
微軟推出了JScript和遠景推出的JavaScript,意味着有兩個版本的JavaScript。那麼站在我們開發人員的角度來講,這一件多麼可怕的事情,我寫一個web頁面要只要兼容兩個版本的JavaScript,而且有可能這兩個版本差異很大。想一想就怕,這是雙倍的開發啊,固然可是業界的開發人員也是有反饋,他們也受不了這種開發,固然他們更擔憂的是以會不會有第三家公司在創造一個本的JavaScript,因而JavaScript標準化問題很塊就被提上了議事日程。網絡
2 ECMAScript的產生框架
你們看好了,傳說的ECMAScript就要誕生了,上面我們知道JavaScript的由來和發展,以及多版本的創造,當時的業界擔憂。因而,就在1997年,以JavaScript1.1位藍本的建議被提交給歐洲計算機制造商協會(ECMA,European Computer Manufacturers Association)。 該協會指定39號技術委員(TC39,Technical Committe #39)負責**「標準化、跨平臺、供應商中立的腳本語言的語法語義」**,TC39🈶來着當時瀏覽器的大佬們推薦的程序員,他們通過數月的努力完成了ECMA-262-----定義一種名爲ECMAScript的新的腳本語言的標準. 接下來的日子中瀏覽器開發商都以ECMAScript的新的腳本語言的標準進行開發。 2.1 ECMAScript 有哪些組成 ECMAScript是JavaScript的核心定義主要包含如下。ide
3 文檔對象模型 DOM(Document Object Model)
聰明的小夥伴一看DOM就是知道是文檔對象模型,爲何有了DOM呢,在ECMAScript的定義中,是不包括輸入和輸出的定義,只是js的核心,瀏覽器實現ECMAScript的宿主,可是有核心也是不行的,因此瀏覽開發商不得不提出如下擴展,來遍歷ECMAScript和宿主的交互,這些擴展中就包含了DOM,就這樣DOM就產生了。
3.1 DOM的做用
DOM是針對於xml,但通過擴展用於HTML的應用程序接口。DOM把整個頁面以家譜的形式一個或者多個節點
3.2 爲何要用DOM
開發人員可得到頁面的內容和結構,接住DOM提供的API,開發人員能夠輕鬆的自如的實現DOM的增刪改查,並且是在不通過頁面刷新的狀況下。 3.3 W3C規劃DOM 當時各大廠商提出的擴展,各有不一樣,就像上面JS剛剛產生的那樣,可能沒有瀏覽器隨DOM的擴展語法和提供的API不同,對於開發人員來講要開發一個使用與各個瀏覽區的web頁面是個很是痛苦的事情,瀏覽器也互不兼容的局面,此時負責web通訊的W3C(World Wide Web Consortium),主動的開始規劃DOM
DOM 並不僅是針對 JavaScript 的,不少別的語言也都實現了 DOM。 不過,在 Web 瀏覽器中,基於 ECMAScript 實現的 DOM 的確已經成爲 JavaScript 這 門語言的一個重要組成部分。
3.4 DOM的組成
DOM1的規定的組成
DOM是有DOM Core 和 DOM HTML DOM Core 是如何映射基於XML的文檔結構,以便於簡化對文檔任意部分操做。 DOM HTML模塊則在DOM核心的基礎上加以擴展,添加針對html的對象和方法。
DOM2的規定的組成
DOM3的規定的組成
進一步擴展了 DOM,引入了以統一方式加載和保存文檔的方法——在 DOM 加載和保 存(DOM Load and Save)模塊中定義;新增了驗證文檔的方法——在 DOM 驗證(DOM Validation)模
4 瀏覽器對象模型 BOM(Browser Object Model)
Internet Explorer 3 和 Netscape Navigator 3有一個共同的特點,那就是支持能夠訪問和操做瀏覽器窗口的瀏覽器對象模型(BOM,Browser Object Model)。
開發人員使用 BOM 能夠控制瀏覽器顯示的頁面 之外的部分。而 BOM 真正不同凡響的地方(也是常常會致使問 題的地方),仍是它做爲 JavaScript 實現 的一部分但卻沒有相關的標準。
這個問題在 HTML5 中獲得瞭解決,HTML5 致力於把不少 BOM 功能寫 入正式規範。HTML5 發佈後,不少關於 BOM 的困惑煙消雲散。
從根本上講,BOM 只處理瀏覽器窗口和框架;但人們習慣上也把 全部針對瀏覽器的 JavaScript 擴展 算做 BOM 的一部分。下面就是一些這樣的擴展:
彈出新瀏覽器窗口的功能;
移動、縮放和關閉瀏覽器窗口的功能;
提供瀏覽器詳細信息的 navigator 對象;
提供瀏覽器所加載頁面的詳細信息的 location 對象;
提供用戶顯示器分辨率詳細信息的 screen 對象;
對 cookies 的支持;
像 XMLHttpRequest 和 IE 的 ActiveXObject 這樣的自定義對象。
因爲沒有 BOM 標準能夠遵循,所以每一個瀏覽器都有本身的實 現。雖然也存在一些事實標準,例如 要有 window 對象和 navigator 對象等,但每一個瀏覽器都會爲這兩個對象乃至 其餘對象定義本身的屬 性和方法。如今有了 HTML5,BOM 實現的細節有望朝着兼容性愈來愈高的方向發展。
各位小夥伴,看完高程3的第一章回憶出來的,JS大體記得發展和組成就是這樣,若是發現有不足的地方請盡情的提出來,歡迎瀏覽*