小夥伴們你們知道JavaScript有哪些部分組成嗎?是不是有些小夥伴會感到“虎軀一震”,當然也有nb的的小夥伴立刻就想到了答案。廢話不說看下面的目錄就知道了
JavaScript
- 1 ECMAScript
- 2 DOM
- 3 BOM
來上慣例:'想要知道某些東西,那麼我們們就需要知道它的由來'
接下來我們們就看看,ECMAScript、DOM、BOM的由來.
1 JavaScript的產生
我在高程3中看到JavaScript誕生於1995年。當時,JavaScript只是處理一些表單輸入驗證。在JavaScript問世之前,使用者提交表單的時候都是通過伺服器來驗證的,大家可以想到,當時的網速和現在比較應該是”慢上幾千倍吧“?,我們們作為使用者考慮一下,比如,我們們填寫一下比較大的表單,用了幾分鐘,填完了我們們提交到伺服器,用了30秒,然後伺服器有花了20秒的時間返回給我們們一個錯誤資訊,說我們們的郵箱地址不合適或者電話號碼不合適,我們們心中或不會有千隻“羊駝”奔騰?。
在1995那個年代,網路界瀏覽器商家,nb的公司有這麼兩個,
- 1 Netscape Navigator (遠景公司)
- 2 Internater Explorer (微軟公司)
1995年有這麼一天,這天,遠景公司希望能有有一門語言,能夠在客戶端發向伺服器之前能夠驗證一下表單格式和填寫,(當時的遠景公司真是前途不可限量啊?,也可能當時被使用者噴過?),既可以完成前端驗證,也可以減輕伺服器壓力,以及優化互動,這個操作有現在的話說,簡直就是6666啊。 在那個用電話撥號上網的年代,能夠在客戶端完成一個基本的驗證任務絕對是令人興奮啊,一時之間JavaScript成為了瀏覽器必備的一個特色。
由於JavaScript出現併成為瀏覽器必備特色以後,微軟的 Intenater-Explorer瀏覽器絕對要和Netscape Navigator競爭自家產品,Intenater-Explorer3加入名為JScript的JavaScript實現,(命名為JScript是為了避開JavaScript版權問題?)。以現在的眼光來看,微軟1996年8月為進入web瀏覽器領域為實施這個重大舉措,是導致Netscape Navigator後蒙羞的一個標誌性事件。然而也標誌著JavaScript作為一門語言,其開發進了一大步。
微軟推出了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的核心定義主要包含以下。
- 1 語法
- 2 型別
- 3 語句
- 4 關鍵字
- 5 保留字
- 6 操作符
- 7 物件
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的規定的組成
- 1 DOM檢視
- 2 DOM事件
- 3 DOM樣式
- 4 DOM遍歷
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大致記得發展和組成就是這樣,如果發現有不足的地方請盡情的提出來,歡迎瀏覽*