JavaScript特點、優缺點及常用架構

來源:互聯網
上載者:User

1.什麼是JavaScript
JavaScript是一種基於對象(Object)和事件驅動(Event Driven)並具有相對安全性的用戶端指令碼語言。同時也是一種廣泛用於用戶端Web開發的指令碼語言,常用來給HTML網頁添加動態功能,比如響應使用者的各種操作。它最初由網景公司(Netscape)的Brendan Eich設計,是一種動態、弱類型、基於原型的語言,內建支援類。

2.JavaScript的特點
(1).一種解釋性執行的指令碼語言。
同其他指令碼語言一樣,JavaScript也是一種解釋性語言,其提供了一個非常方便的開發過程。JavaScript的文法基本結構形式與C、C++、Java十分類似。但在使用前,不像這些語言需要先編譯,而是在程式運行過程中被逐行地解釋。JavaScript與HTML標識結合在一起,從而方便使用者的使用操作。

(2).一種基於對象的指令碼語言。
其也可以被看作是一種物件導向的語言,這意味著JavaScript能運用其已經建立的對象。因此,許多功能可以來自於指令碼環境中對象的方法與指令碼的相互作用。

(3).一種簡單弱類型指令碼語言。
其簡單性主要體現在:首先,JavaScript是一種基於Java基本語句和控制流程之上的簡單而緊湊的設計,從而對於使用者學習Java或其他C語系的程式設計語言是一種非常好的過渡,而對於具有C語系編程功底的程式員來說,JavaScript上手也非常容易;其次,其變數類型是採用弱類型,並未使用嚴格的資料類型。

(4).一種相對安全指令碼語言。
JavaScript作為一種安全性語言,不被允許訪問本地的硬碟,且不能將資料存入伺服器,不允許對網路文檔進行修改和刪除,只能通過瀏覽器實現資訊瀏覽或動態互動。從而有效地防止資料的丟失或對系統的非法訪問。

(5).一種事件驅動指令碼語言。
JavaScript對使用者的響應,是以事件驅動的方式進行的。在網頁(Web Page)中執行了某種操作所產生的動作,被稱為“事件”(Event)。例如按下滑鼠、移動視窗、選擇菜單等都可以被視為事件。當事件發生後,可能會引起相應的事件響應,執行某些對應的指令碼,這種機制被稱為“事件驅動”。

(6).一種跨平台性指令碼語言。
JavaScript依賴於瀏覽器本身,與作業環境無關,只要電腦能運行瀏覽器,並支援JavaScript的瀏覽器,就可正確執行,從而實現了“編寫一次,走遍天下”的夢想。

因此,JavaScript是一種新的描述語言,其可以被嵌入到HTML檔案中。JavaScript語言可以做到響應使用者的需求事件(例如表單的輸入),而不需要任何的網路來回傳輸資料。所以當一位使用者輸入一項資料時,此資料資料不用經過傳給伺服器(server)處理再傳回來的過程,而直接可以被用戶端(client)的應用程式所處理。

3.JavaScript的優缺點
(1).JavaScript的優點:
<1>.JavaScript減少網路傳輸。
在JavaScript這樣的使用者端指令碼語言出現之前,傳統的資料提交和驗證工作均由使用者端瀏覽器通過網路傳輸到伺服器上進行。如果資料量很大,這對於網路和伺服器的資源來說實在是一種無形的浪費。而使用JavaScript就可以在用戶端進行資料驗證。

<2>.JavaScript方便操縱HTML對象。
JavaScript可以方便地操縱各種頁面中的對象,使用者可以使用JavaScript來控制頁面中各個元素的外觀、狀態甚至運行方式,JavaScript可以根據使用者的需要“定製”瀏覽器,從而使網頁更加友好。

<3>.JavaScript支援分布式運算。
JavaScript可以使多種任務僅在使用者端就可以完成,而不需要網路和伺服器的參與,從而支援分布式的運算和處理。

(2).JavaScript的局限性:
<1>.各瀏覽器廠商對JavaScript支援程度不同。
目前在互連網上有很多瀏覽器,如Firefox、Internet Explorer、Opera等,但每種瀏覽器支援JavaScript的程度是不一樣的,不同的瀏覽器在瀏覽一個帶有JavaScript指令碼的首頁時,由於對JavaScript的支援稍有不同,其效果會有一定的差距,有時甚至會顯示不出來。

<2>.“Web安全性”對JavaScript一些功能犧牲。
當把JavaScript的一個設計目標設定為“Web安全性”時,就需要犧牲JavaScript的一些功能。因此,純粹的JavaScript將不能開啟、讀寫和儲存使用者電腦上的檔案。其有權訪問的唯一資訊就是該JavaScript所嵌入的那個Web首頁中的資訊,簡言之,JavaScript將只存在於它自己的小小世界—Web首頁裡。

4.常用JS架構介紹及其優缺點
(1).Jquery
<1>.介紹
JQuery 是一款同 prototype 一樣優秀 js 開發庫類,特別是對 css 和 XPath 的支援,使我們寫 js 變得更加方便!如果你不是個 js 高手又想寫出優秀的 js 效果,那麼 JQuery 可以幫你達到目的!並且簡介的文法和高的效率一直是jQuery追求的目標。
<2>.優點:注重簡介和高效,js 效果有 yui-ext 的選擇,因為 yui-ext 重用了很多 jQuery 的函數
<3>.缺點:據說太嫩,曆史不悠久。

(2).EXT
<1>.介紹
基於 Yahoo UI 的擴充包 yui-ext 是具有 CS 風格的 Web 使用者介面組件,能實現複雜的 Layout 布局,介面效果可以和 backbase 媲美,而且使用純 javascript 代碼開發。真正的可編輯的表格 Edit Grid,支援 XML 和 Json 資料類型,直接可以遷入 Grid。許多組件實現了對資料來源的支援,例如動態布局,可編輯的表格控制項,動態載入的 Tree 控制項、動態拖拽效果等等。從 1.0 beta 版開始同 Jquery 合作,推出基於 jQuery 的 Ext 1.0,提供了更多有趣的功能。
<2>.優點:結構化,類似於 java 的結構,清晰明了,底層用到了 Jquery 的一些函數,使整合使用有了選擇,最重要的一點是介面太讓讓人震撼了。
<3>.缺點:太過複雜,整個介面的構造過於複雜。

(3).Dojo
<1>.介紹
Dojo 是目前最為強大的JS架構,它在自己的 Wiki 上給自己下了一個定義,Dojo 是一個用 JavaScript 編寫的開源的DHTML工具箱。Dojo 很想做一個“大一統”的工具箱,不僅僅是瀏覽器層面的,野心還是很大的。Dojo 包括 Ajax、Browser、Event、Widget 等跨瀏覽器 API,包括了 JS 本身的語言擴充,以及各個方面的工具類庫,和比較完善的 UI 組件庫,也被廣泛應用在很多項目中,他的 UI 組件的特點是通過給 HTML 標籤增加 TAG 的方式進行擴充,而不是通過寫 JS 來產生,Dojo 的 API 模仿 Java 類庫的組織方式。用 Dojo 寫 Web OS 可謂非常方便。Dojo 現在已經 4.0 了,Dojo 強大的地方在於介面和特效的封裝,可以讓開發人員快速構建一些相容標準的介面。
<1>.優點:庫相當完善,發展時間也比較長,功能強大,據說利用 Dojo 的 io.bind() 可以實現 comet 看見其功能強大非一般,得到 IBM 和 SUN 的支援。
<2>.缺點:檔案體積比較大,200多KB,初次下載相當慢,此外,Dojo 的類庫使用顯得不是那麼易用,JS文法增強方面不如 Prototype

(4).Prototype
<1>.介紹
它是一個非常優雅的 JS 庫,定義了 JS 的物件導向擴充,DOM 操作API,事件等等,以 Prototype 為核心,形成了一個外圍的各種各樣的 JS 擴充庫,是相當有前途的 JS 底層架構,值得推薦,感覺也是現實中應用最廣的庫類(RoR 整合的 AJAX JS 庫),之上還有 Scriptaculous 實現一些JS組件功能和效果。
<2>.優點:基本底層,易學易用,甚至是其他一些js特效開發包的底層,體積算是最小的了。
<3>.缺點:如果說缺點,可能就是功能是他的弱項

(5).dScriptaculous
<1>.介紹
Scriptaculous 是基於prototype.js 架構的 JS 效果。包含了 6 個 js 檔案,不同的檔案對應不同的 js 效果,所以說,如果底層用 prototype 的話,做js效果用 Scriptaculous 那是再合適不過的了,連大名鼎鼎的 digg 都在用他,可見不一般
<2>.優點:基於prototype 是最大的優點,由於使用 prototype 的廣泛性,無疑對使用者書錦上添花。
<3>.缺點:剛剛興起,需要時間的磨練

(6).Mochikit
<1>.介紹
MochiKit 自稱為一個輕量級的 js 架構。MochiKit 主要受到 Python 和 Python 標準庫提供的很多便利之處的啟發,另外還緩解了瀏覽器版本之間的不一致性。其中的 MochiKit.DOM 尤其方便,能夠以比原始 JavaScript 更友好的方式處理 DOM 對象。MochiKit.DOM 大部分都是針對 XHTML 文檔定製的,如果與 MochiKit 和 Ajax 結合在一起,使用 XHTML 封裝的微格式尤其方便。Mochikit 可以直接對字串或者數字格式化輸出,比較實用和方便。它還有自己的 js 代碼解譯器
<2>.優點:MochiKit.DOM 這部分很實用,簡介也是很突出的
<3>.缺點:輕量級的缺點

(7).Mootools
<1>.介紹
MooTools 是一個簡潔,模組化,物件導向的 JavaScript 架構。它能夠協助你更快,更簡單地編寫可擴充和相容性強的 JavaScript 代碼。Mootools 跟 prototypejs 相類似,文法幾乎一樣。但它提供的功能要比 prototypejs 多,而且更強大。比如增加了動畫特效、拖放操作等等。
<2>.優點:可以定製自己所需要的功能,可以說是 prototypejs 的增強版。
<3>.缺點:不大不小,具體應用具體分析。

(8).Moo.fx
<1>.介紹
Moo.fx是 一個超級輕量級的 javascript 特效庫(7k),能夠與 prototype.js 或mootools 架構一起使用。它非常快、便於使用、跨瀏覽器、符合標準,提供控制和修改任何 HTML 元素的 CSS 屬性,包括顏色。它內建檢查器能夠防止使用者通過多次或瘋狂點擊來破壞效果。moo.fx整體採用模組化設計,所以可以在它的基礎上開發你需要的任何特效。
<2>.優點:小塊頭有大能耐
<3>.缺點:這麼小了,已經不錯了

參考部落格:
《JavaScript的特點》
《JavaScript的優點與局限性》
《八款JavaScript架構介紹及其比較》

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.