天天看點

《JavaScript面向對象程式設計指南(第2版)》——第1章 面向對象的JavaScript 1.1 回顧曆史

本節書摘來自異步社群《javascript面向對象程式設計指南(第2版)》一書中的第1章,第1.1節,作者:【加拿大】stoyan stefanov著,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

自web誕生以來,人們對于動态與響應式頁面的需求便與日俱增。雖然靜态的html文本頁面在可讀性方面或許會更好一些,特别是在有了css的輔助之後,頁面排版顯得更加美觀了,但從另一方面來說,如果我們能讓人們像在桌面上那樣使用浏覽器中的應用程式,事情或許會變得更有趣一些。如今,我們已能在浏覽器中直接使用電子郵件、月曆、電子銀行、購物、繪畫、遊戲及文本編輯。這都要感謝一種web程式設計語言—javascript,是它讓這些web應用成為了可能。然而,javascript最初也隻不過是我們偶爾嵌入在html中的一小行代碼,但如今它已經日趨成熟,并且被廣泛使用。開發者們利用該程式設計語言的面向對象特性,實作了代碼重用,并建構起了可伸縮的代碼架構。

如果我們回顧一下web開發領域這些年來的流行詞彙—dhtml、ajax、web 2.0、html5,就會發現這些詞背後的内涵始終沒有變,依然是:html、css、javascript。其中html服務于内容,css服務于表現,而javascript則服務于行為。換句話說,javascript是讓一切東西協同運作的粘合劑,有了它,我們才能在建構出豐富多彩的web應用程式。

但事情遠不止如此,javascript的應用領域并不僅僅局限于web平台。

在javascript程式所能運作的多種宿主環境中,web浏覽器無疑是用得最普遍的那一種,但javascript也可以運作于其他環境。javascript可以應用于各式各樣的小工具、應用擴充、以及其他軟體,本書在後續章節中會一一提及。總而言之,将時間投資于學習javascript是一個明智的選擇,因為一旦您掌握了javascript,就可以編寫出各種适用于多種平台的不同應用,包括手機應用和伺服器端程式。畢竟,如今我們要說javascript無所不在,那确實是一點都不誇張。

本書将從零開始,我們不會對讀者的程式設計背景做任何假設,隻需要您了解一點html常識即可。而且除了有一個章節用于探讨web浏覽器環境以外,本書其他部分都在純粹地關注javascript語言本身。是以,您可以将在本書中學到的知識應用于所有的javascript環境。

下面,我們将從以下兩點開始:

對javascript背後故事的簡單介紹;

面向對象。

起初,web頁面不過是一些以靜态html文檔形式釋出的科學出版物,這些文檔之間隻依靠一些簡單的超連結(hyperlinks)綁定在一起。這可能有些難以置信,但最早的web頁面的确是不支援任何圖檔的,但這種情況不久便得到了改善。随後web就越來越廣受歡迎,規模也在不斷增大,很快随着web業務的快速普及和增長,網站管理者越來越希望自己所建立的web頁面能處理更多的事情。例如,他們希望網站能具有更豐富的使用者互動能力,主要是能完成一些簡單任務(如驗證表單之類),以此節省與伺服器端的資訊互動。當時他們可以有兩種選擇:java applets和livescript。其中,livescript是1995年由netscape公司的brendan eich所開發的程式設計語言。netscape 2.0釋出之後,它被正式更名為javascript。

衆所周知,applets後來沒落了,javascript則更加繁榮。這種通過在html中嵌入簡短代碼段來調整web頁面中其他靜态元素的方式在網站管理者間大受好評。但沒過多久,浏覽器的競争廠商microsoft公司就釋出了支援jscript的internet explorer(ie)3.0。jscript簡直就是javascript的翻版,并且還在其繼承之上引入了一些ie獨有的特性。最終,為了使語言的實作更趨向于标準化,于是ecmascript應運而生了。ecma(歐洲計算機制造商協會)建立了ecma-262标準,該标準脫離了浏覽器和那些web獨有的特性,集中描述了javascript作為程式設計語言的核心部分。

大緻上,javascript這個術語通常涵蓋了以下3個部分。

ecmascript——語言的核心部分(即變量,函數,循環等等):這個部分獨立于浏覽器之外,并可以在其他環境中使用。

文檔對象模型(dom):它實際上是提供了一種與html、xml文檔互動的方式。最初,javascript隻能提供對頁面上一部分元素的有限通路能力,主要集中在表單,超連結和圖檔這些元素上。後來權限逐漸被擴大,如今幾乎所有元素都已經可以通路了。為此,網際網路聯盟(w3c)還專門建立了dom标準。該标準是一種獨立的(即它并不依賴于javascript)操作結構化文檔的方式。

浏覽器對象模型(bom):這實際上是一個與浏覽器環境有關的對象集合。原本沒有任何标準可言,直到html5誕生之後,人們才定義了一些浏覽器之間通用的對象标準。

雖然本書專門有一個章節用于闡述浏覽器、dom及bom,但大部分内容還都在講述javascript語言的核心部分,您在這裡所學到的javascript知識基本都可應用于任何javascript執行環境。

繼續閱讀