弱類型語言也稱為弱類型定義語言。與強(qiáng)類型定義相反。像vb,php等就屬于弱類型語言·
例如:在vbscript中,可以將字符串 12 和整數(shù) 3 進(jìn)行連接得到字符串 123,然后可以把它看成整數(shù) 123,而不需要顯式轉(zhuǎn)換。
弱類型有時顯得很方便,有時卻又極易出錯。比如:
var result=5+5; //two numbers
alert(result); //outputs “10”
var result=5+‘5’; // a number and a string
alert(result); //outputs “55”
因此使用弱類型語言也要格外注意數(shù)據(jù)類型防止出錯
弱類型語言的優(yōu)缺點(diǎn)有哪些
JavaScript的特點(diǎn)
(1)。一種解釋性執(zhí)行的腳本語言。
同其他腳本語言一樣,JavaScript也是一種解釋性語言,其提供了一個非常方便的開發(fā)過程。JavaScript的語法基本結(jié)構(gòu)形式與C、C++、Java十分類似。但在使用前,不像這些語言需要先編譯,而是在程序運(yùn)行過程中被逐行地解釋。JavaScript與HTML標(biāo)識結(jié)合在一起,從而方便用戶的使用操作。
(2)。一種基于對象的腳本語言。
其也可以被看作是一種面向?qū)ο蟮恼Z言,這意味著JavaScript能運(yùn)用其已經(jīng)創(chuàng)建的對象。因此,許多功能可以來自于腳本環(huán)境中對象的方法與腳本的相互作用。
?。?)。一種簡單弱類型腳本語言。
其簡單性主要體現(xiàn)在:首先,JavaScript是一種基于Java基本語句和控制流之上的簡單而緊湊的設(shè)計,從而對于使用者學(xué)習(xí)Java或其他C語系的編程語言是一種非常好的過渡,而對于具有C語系編程功底的程序員來說,JavaScript上手也非常容易;其次,其變量類型是采用弱類型,并未使用嚴(yán)格的數(shù)據(jù)類型。
?。?)。一種相對安全腳本語言。
JavaScript作為一種安全性語言,不被允許訪問本地的硬盤,且不能將數(shù)據(jù)存入服務(wù)器,不允許對網(wǎng)絡(luò)文檔進(jìn)行修改和刪除,只能通過瀏覽器實現(xiàn)信息瀏覽或動態(tài)交互。從而有效地防止數(shù)據(jù)的丟失或?qū)ο到y(tǒng)的非法訪問。
(5)。一種事件驅(qū)動腳本語言。
JavaScript對用戶的響應(yīng),是以事件驅(qū)動的方式進(jìn)行的。在網(wǎng)頁(Web Page)中執(zhí)行了某種操作所產(chǎn)生的動作,被稱為“事件”(Event)。例如按下鼠標(biāo)、移動窗口、選擇菜單等都可以被視為事件。當(dāng)事件發(fā)生后,可能會引起相應(yīng)的事件響應(yīng),執(zhí)行某些對應(yīng)的腳本,這種機(jī)制被稱為“事件驅(qū)動”。
?。?)。一種跨平臺性腳本語言。
JavaScript依賴于瀏覽器本身,與操作環(huán)境無關(guān),只要計算機(jī)能運(yùn)行瀏覽器,并支持JavaScript的瀏覽器,就可正確執(zhí)行,從而實現(xiàn)了“編寫一次,走遍天下”的夢想。
因此,JavaScript是一種新的描述語言,其可以被嵌入到HTML文件中。JavaScript語言可以做到響應(yīng)使用者的需求事件(例如表單的輸入),而不需要任何的網(wǎng)絡(luò)來回傳輸資料。所以當(dāng)一位使用者輸入一項資料時,此資料數(shù)據(jù)不用經(jīng)過傳給服務(wù)器(server)處理再傳回來的過程,而直接可以被客戶端(client)的應(yīng)用程序所處理。
JavaScript的優(yōu)缺點(diǎn)
(1).JavaScript的優(yōu)點(diǎn):
《1》.JavaScript減少網(wǎng)絡(luò)傳輸。
在JavaScript這樣的用戶端腳本語言出現(xiàn)之前,傳統(tǒng)的數(shù)據(jù)提交和驗證工作均由用戶端瀏覽器通過網(wǎng)絡(luò)傳輸?shù)椒?wù)器上進(jìn)行。如果數(shù)據(jù)量很大,這對于網(wǎng)絡(luò)和服務(wù)器的資源來說實在是一種無形的浪費(fèi)。而使用JavaScript就可以在客戶端進(jìn)行數(shù)據(jù)驗證。
《2》.JavaScript方便操縱HTML對象。
JavaScript可以方便地操縱各種頁面中的對象,用戶可以使用JavaScript來控制頁面中各個元素的外觀、狀態(tài)甚至運(yùn)行方式,JavaScript可以根據(jù)用戶的需要“定制”瀏覽器,從而使網(wǎng)頁更加友好。
《3》.JavaScript支持分布式運(yùn)算。
JavaScript可以使多種任務(wù)僅在用戶端就可以完成,而不需要網(wǎng)絡(luò)和服務(wù)器的參與,從而支持分布式的運(yùn)算和處理。
?。?).JavaScript的局限性:
《1》。各瀏覽器廠商對JavaScript支持程度不同。
目前在互聯(lián)網(wǎng)上有很多瀏覽器,如Firefox、Internet Explorer、Opera等,但每種瀏覽器支持JavaScript的程度是不一樣的,不同的瀏覽器在瀏覽一個帶有JavaScript腳本的主頁時,由于對JavaScript的支持稍有不同,其效果會有一定的差距,有時甚至?xí)@示不出來。
《2》?!癢eb安全性”對JavaScript一些功能犧牲。
當(dāng)把JavaScript的一個設(shè)計目標(biāo)設(shè)定為“Web安全性”時,就需要犧牲JavaScript的一些功能。因此,純粹的JavaScript將不能打開、讀寫和保存用戶計算機(jī)上的文件。其有權(quán)訪問的唯一信息就是該JavaScript所嵌入的那個Web主頁中的信息,簡言之,JavaScript將只存在于它自己的小小世界—Web主頁里。
常用JS框架介紹及其優(yōu)缺點(diǎn)
?。?).Jquery
《1》。介紹
JQuery 是一款同 prototype 一樣優(yōu)秀 js 開發(fā)庫類,特別是對 css 和 XPath 的支持,使我們寫 js 變得更加方便!如果你不是個 js 高手又想寫出優(yōu)秀的 js 效果,那么 JQuery 可以幫你達(dá)到目的!并且簡介的語法和高的效率一直是jQuery追求的目標(biāo)。
《2》。優(yōu)點(diǎn):注重簡介和高效,js 效果有 yui-ext 的選擇,因為 yui-ext 重用了很多 jQuery 的函數(shù)
《3》。缺點(diǎn):據(jù)說太嫩,歷史不悠久。
?。?).EXT
《1》。介紹
基于 Yahoo UI 的擴(kuò)展包 yui-ext 是具有 CS 風(fēng)格的 Web 用戶界面組件,能實現(xiàn)復(fù)雜的 Layout 布局,界面效果可以和 backbase 媲美,而且使用純 javascript 代碼開發(fā)。真正的可編輯的表格 Edit Grid,支持 XML 和 Json 數(shù)據(jù)類型,直接可以遷入 Grid。許多組件實現(xiàn)了對數(shù)據(jù)源的支持,例如動態(tài)的布局,可編輯的表格控件,動態(tài)加載的 Tree 控件、動態(tài)拖拽效果等等。從 1.0 beta 版開始同 Jquery 合作,推出基于 jQuery 的 Ext 1.0,提供了更多有趣的功能。
《2》。優(yōu)點(diǎn):結(jié)構(gòu)化,類似于 java 的結(jié)構(gòu),清晰明了,底層用到了 Jquery 的一些函數(shù),使整合使用有了選擇,最重要的一點(diǎn)是界面太讓讓人震撼了。
《3》。缺點(diǎn):太過復(fù)雜,整個界面的構(gòu)造過于復(fù)雜。
(3).Dojo
《1》。介紹
Dojo 是目前最為強(qiáng)大的JS框架,它在自己的 Wiki 上給自己下了一個定義,Dojo 是一個用 JavaScript 編寫的開源的DHTML工具箱。Dojo 很想做一個“大一統(tǒng)”的工具箱,不僅僅是瀏覽器層面的,野心還是很大的。Dojo 包括 Ajax、Browser、Event、Widget 等跨瀏覽器 API,包括了 JS 本身的語言擴(kuò)展,以及各個方面的工具類庫,和比較完善的 UI 組件庫,也被廣泛應(yīng)用在很多項目中,他的 UI 組件的特點(diǎn)是通過給 HTML 標(biāo)簽增加 TAG 的方式進(jìn)行擴(kuò)展,而不是通過寫 JS 來生成,Dojo 的 API 模仿 Java 類庫的組織方式。用 Dojo 寫 Web OS 可謂非常方便。Dojo 現(xiàn)在已經(jīng) 4.0 了,Dojo 強(qiáng)大的地方在于界面和特效的封裝,可以讓開發(fā)者快速構(gòu)建一些兼容標(biāo)準(zhǔn)的界面。
《1》。優(yōu)點(diǎn):庫相當(dāng)完善,發(fā)展時間也比較長,功能強(qiáng)大,據(jù)說利用 Dojo 的 io.bind() 可以實現(xiàn) comet 看見其功能強(qiáng)大非一般,得到 IBM 和 SUN 的支持。
《2》。缺點(diǎn):文件體積比較大,200多KB,初次下載相當(dāng)慢,此外,Dojo 的類庫使用顯得不是那么易用,JS語法增強(qiáng)方面不如 Prototype
?。?).Prototype
《1》。介紹
它是一個非常優(yōu)雅的 JS 庫,定義了 JS 的面向?qū)ο髷U(kuò)展,DOM 操作API,事件等等,以 Prototype 為核心,形成了一個外圍的各種各樣的 JS 擴(kuò)展庫,是相當(dāng)有前途的 JS 底層框架,值得推薦,感覺也是現(xiàn)實中應(yīng)用最廣的庫類(RoR 集成的 AJAX JS 庫),之上還有 Scriptaculous 實現(xiàn)一些JS組件功能和效果。
《2》。優(yōu)點(diǎn):基本底層,易學(xué)易用,甚至是其他一些js特效開發(fā)包的底層,體積算是最小的了。
《3》。缺點(diǎn):如果說缺點(diǎn),可能就是功能是他的弱項
?。?).dScriptaculous
《1》。介紹
Scriptaculous 是基于prototype.js 框架的 JS 效果。包含了 6 個 js 文件,不同的文件對應(yīng)不同的 js 效果,所以說,如果底層用 prototype 的話,做js效果用 Scriptaculous 那是再合適不過的了,連大名鼎鼎的 digg 都在用他,可見不一般
《2》。優(yōu)點(diǎn):基于prototype 是最大的優(yōu)點(diǎn),由于使用 prototype 的廣泛性,無疑對用戶書錦上添花。
《3》。缺點(diǎn):剛剛興起,需要時間的磨練
(6).Mochikit
《1》。介紹
MochiKit 自稱為一個輕量級的 js 框架。MochiKit 主要受到 Python 和 Python 標(biāo)準(zhǔn)庫提供的很多便利之處的啟發(fā),另外還緩解了瀏覽器版本之間的不一致性。其中的 MochiKit.DOM 尤其方便,能夠以比原始 JavaScript 更友好的方式處理 DOM 對象。MochiKit.DOM 大部分都是針對 XHTML 文檔定制的,如果與 MochiKit 和 Ajax 結(jié)合在一起,使用 XHTML 包裝的微格式尤其方便。Mochikit 可以直接對字符串或者數(shù)字格式化輸出,比較實用和方便。它還有自己的 js 代碼解釋器
《2》。優(yōu)點(diǎn):MochiKit.DOM 這部分很實用,簡介也是很突出的
《3》。缺點(diǎn):輕量級的缺點(diǎn)
?。?).Mootools
《1》。介紹
MooTools 是一個簡潔,模塊化,面向?qū)ο蟮?JavaScript 框架。它能夠幫助你更快,更簡單地編寫可擴(kuò)展和兼容性強(qiáng)的 JavaScript 代碼。Mootools 跟 prototypejs 相類似,語法幾乎一樣。但它提供的功能要比 prototypejs 多,而且更強(qiáng)大。比如增加了動畫特效、拖放操作等等。
《2》。優(yōu)點(diǎn):可以定制自己所需要的功能,可以說是 prototypejs 的增強(qiáng)版。
《3》。缺點(diǎn):不大不小,具體應(yīng)用具體分析。
?。?).Moo.fx
《1》。介紹
Moo.fx是 一個超級輕量級的 javascript 特效庫(7k),能夠與 prototype.js 或mootools 框架一起使用。它非??臁⒁子谑褂?、跨瀏覽器、符合標(biāo)準(zhǔn),提供控制和修改任何 HTML 元素的 CSS 屬性,包括顏色。它內(nèi)置檢查器能夠防止用戶通過多次或瘋狂點(diǎn)擊來破壞效果。moo.fx整體采用模塊化設(shè)計,所以可以在它的基礎(chǔ)上開發(fā)你需要的任何特效。
《2》。優(yōu)點(diǎn):小塊頭有大能耐
《3》。缺點(diǎn):這么小了,已經(jīng)不錯了
評論