<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    JavaScript說分明

    Posted on 2006-03-02 20:09 killvin 閱讀(275) 評論(0)  編輯  收藏 所屬分類: javascript

    JavaScript說分明 

    http://taiwan.cnet.com/enterprise/technology/0,2000062852,20103386,00.htm
    朱仲傑撰  2005/12/28

     

    最近因為AJAX受到Google等網(wǎng)路服務(wù)業(yè)者的愛用而聲名大噪。也讓這個其實存在很久的程式語言再度成為討論話題。


    JavaScript可以說是全世界使用最普遍的一個語言。雖然就統(tǒng)計資料(註)上來看,用JavaScript為主的專案數(shù)量只排在第九名,但我相信就應(yīng)用的層面來看,絕對遠超過Java與.Net。JavaScript也是最讓人混淆的一個語言,即便是專業(yè)的網(wǎng)頁工程師,也不見得每位都能正確的了解它。網(wǎng)頁工程師對它又愛又恨,使用者最能體驗到它所帶來的好處,但常常也是被它搞的昏頭轉(zhuǎn)向。到底它是個什麼樣神奇的語言呢?

    JavaScript的前世今生

    提到JavaScript,大家第一個聯(lián)想到的就是Java,但一切的誤解也就從這開始。要說它跟Java完全沒關(guān)係嘛,也不盡然。JavaScript原來的名稱叫LiveScript,是Netscape(網(wǎng)景)為了它的LiveWare平臺所發(fā)展出來的一套語言。後來之所以改名叫JavaScript,主要是因為當年Netscape與Sun合作,共同開發(fā)網(wǎng)頁上的腳本語言,而剛好Sun正在開發(fā)Java語言,初期而且也是以網(wǎng)頁上的應(yīng)用Java Applet為主,所以LiveScript也就改名為JavaScript。第一個擁有執(zhí)行JavaScript的瀏覽器Netscape 2.0,發(fā)表日期也跟Java一樣,同樣都是1995年,所以算起來今年也是JavaScript的十歲生日。

    JavaScript的版本非常多種,最原始的是由Netscape一路發(fā)展過來的,後來NetScape把它交給ECMA製定為標準(ECMA-262),而ECMA所製定出來的稱之為ECMAScript;最喜歡自己也搞一套的微軟,也有自訂的Jscript。理論上,有了標準大家就應(yīng)該要遵守,不過到目前看來,實際上並非如此。各家瀏覽器相容的程度不一,造成現(xiàn)在混亂的局面,同一個網(wǎng)頁用不同的瀏覽器瀏覽有時結(jié)果不盡相同。

    JavaScript沒有你想像中的簡單

    JavaScript是屬於prototype-based的一種語言,而prototype-based又是物件導(dǎo)向程式設(shè)計語言(Object-Oriented Programming Language)的一個分枝,所以嚴格說起來,JavaScript也是一種物件導(dǎo)向程式設(shè)計語言。光看到「物件導(dǎo)向」這四個字,我想很多人頭皮都已經(jīng)開始發(fā)麻了,不過JavaScript之所以不簡單並不是因為這一點,而是因為它的結(jié)構(gòu)鬆散和型態(tài)鬆散(loose typing)所導(dǎo)致。

    你若寫過Java程式的話或許就知道,Java程式必需要Java虛擬機器(JVM)上執(zhí)行,在執(zhí)行Java程式之前,它必需是被編譯過的;在編譯的過程中,Java會檢查許許多多的條件,例如最基本的語法、變數(shù)的宣告等等。

    JavaScript一樣得依存在一個容器(Container)中才能執(zhí)行,我們常見到的容器就是瀏覽器(Web Browser),跟Java不同的是,JavaScript的程式不需要事先編譯,它是屬於直譯式的語言,你可以把它想像成看到一行程式碼就執(zhí)行一行。因為少了編譯時期的檢查,JavaScript就比Java「自由」許多,你可以在網(wǎng)頁上隨意的位置上安插JavaScript程式、可以隨意的建立新的變數(shù)來使用;你不用分清楚什麼是數(shù)值,什麼是字串、什麼又是物件,通通可以加加(+)在一起,這就會造成相當不嚴謹?shù)拈_發(fā)過程。

    自由是必需要付出代價的,前面提到相容性的混亂,在這又有語法結(jié)構(gòu)上的混亂,這下子可以說是亂上加亂了。網(wǎng)頁工程師之所以對JavaScript又愛又恨,愛是因為透過適當?shù)腏avaScript,可以在網(wǎng)頁上創(chuàng)造出許許多多特殊的效果,讓使用者在瀏覽這個網(wǎng)頁時,能有更多的互動。恨是因為市場上極少有以JavaScript為主的整合開發(fā)工具(IDE),因為剛剛所說的混亂,造成JavaScript程式很難開發(fā)和除錯。

    JavaScript之所以普及,是因為寫JavaScript程式的使用者,不見得是寫Java、C/C++、VB等受過基本程式設(shè)計訓(xùn)練的程式設(shè)計師,往往網(wǎng)頁的美工人員才是使用JavaScript的大宗。他們不會也沒時間去學(xué)習完整的JavaScript,而是有需要時才在網(wǎng)頁上東加一些、西加一點,這些加上去的JavaScript可能是網(wǎng)頁編輯器所提供的元件、或是網(wǎng)路上分享出來的程式片段。JavaScript一點都不簡單,只是大家都很偷懶,用最簡單的方式來使用它罷了。

    AJAX應(yīng)用為JavaScript注入強心劑

    JavaScript十年來沒有特別受歡迎,因為WWW盛行以來它和HTML一樣已變成網(wǎng)頁裡最基本的元素,直到AJAX的出現(xiàn),讓JavaScript大大的受到眾人的注視。AJAX的全名是 Asynchronous JavaScript and XML,JavaScript就是其中之一的主角,AJAX並不是一項新的技術(shù),而是將一些舊有的技術(shù)結(jié)合起來做一種巧妙的應(yīng)用,賦予網(wǎng)頁的一股新動力。

    AJAX這個名詞最早是出現(xiàn)在Adaptive Path網(wǎng)站上,一篇由 Jesse James Garrett於2005年2月18號所寫的文章中所提出的(http://www.adaptivepath.com/publications/essays/archives/000385.php)。AJAX是客戶端(瀏覽器)的技術(shù),簡單的說,就是用JavaScript與後端伺服器做資料的溝通,資料採用XML的格式,JavaScript動態(tài)地從後端拿到XML格式的資料,重新整理、重組後再顯示到網(wǎng)頁上。AJAX基本上是無關(guān)Java或.Net的,甚至PHP也可以跟AJAX結(jié)合在一起使用。網(wǎng)路上、雜誌裡介紹AJAX的文章相當?shù)亩啵谶@我就不贅述。在這要提醒大家注意的是,因為AJAX,JavaScript又開始大量的應(yīng)用在網(wǎng)頁裡,前面所提及的混亂又被突顯了出來。混亂不一定只是負面的,所謂時勢造英雄,我們期待有人能出來一統(tǒng)江湖。

    JavaScript的其它應(yīng)用

    JavaScript只能夠運用在網(wǎng)頁上嗎?其實蘋果電腦(Apple)除了硬體上的創(chuàng)意外,在作業(yè)系統(tǒng)上的表現(xiàn)一直以來也是使用者的最愛。在新的Mac OS X 10.4裡,有個新的功能叫-Dashboard,它可以讓你執(zhí)行一些小程式,例如月曆、天氣預(yù)報、地圖查找等。這些小程式稱為Widget,而撰寫Widget的主要語言就是JavaScript,當然還可以配合HTML、CSS甚至Java Applet。隨著Mac OS X的使用者日益成長,撰寫Widget已成為一個新興的軟體業(yè)。Dashboard其實不是第一個實踐這個概念的程式,早在Mac OS X 10.2時,就有一個叫Konfabulator的軟體做出這樣的平臺,在當時大受歡迎。後來Apple在Mac OS X 10.4內(nèi)建一樣功能的Dashboard時,還飽受外界的批評和指責,認為Apple是抄襲Konfabulator的。隨著Mac OS X直接支援Wedget,Konfabulator漸漸的淡出Mac的舞臺。不過Yahoo看上了它,把它給買了下來,而在不久前重新推出Windows/Mac版的Yahoo!Webget,這下Windows的使用者也能享受Widget所帶來的便利和好處。

    下一步

    世界上有所謂的Java工程師、C/C++工程師、VB工程師等?,好像沒有JavaScript工程師這樣的頭銜,我個人覺得他應(yīng)該是被需要的。JavaScript其實並不好學(xué),教育訓(xùn)練是個商機,開發(fā)除錯平臺也是一個商機。這年頭流行認證,它也是可以著墨的,例如辦理類似SCJP、MCSE這樣的認證考式(事實上是有JavaScript Certification,不過沒像其它認證這麼有公信和正式就是了)。唯有專門的訓(xùn)練課程及認證才能真正落實JavaScript的標準化,這樣寫出來的JavaScript程式才不會相容性不足,造成用某種瀏覽器才能觀看的特定網(wǎng)頁的情況。

    而另一種是像無障礙網(wǎng)頁這種的認證,若你的網(wǎng)頁通過JavaScript相容性審合,那麼在網(wǎng)頁上就可以放上一個標章,証明你的網(wǎng)頁是相容於各種瀏覽器的。以上這些如果能由國際大廠來推動,成功的機會才會比較大,好奇的是,這麼多年來,怎麼沒人想幹這件事?!也許是吃力不討好吧。

    註: TIOBE Programming Community Index for December 2005 http://www.tiobe.com/tpci.htm 相關(guān)連結(jié):

    ECMA-262
    http://www.ecma-international.org/publications/standards/Ecma-262.htm

    Spidermonkey
    http://www.mozilla.org/js/spidermonkey/

    Rhino
    http://www.mozilla.org/rhino/

    Dashboard
    http://www.apple.com/macosx/features/dashboard/

    Yahoo!Wedgets
    http://widgets.yahoo.com/

    主站蜘蛛池模板: 亚洲AV无码AV男人的天堂不卡| 亚洲国产精品自在在线观看| 久久水蜜桃亚洲AV无码精品| 日韩免费一区二区三区在线 | a毛片视频免费观看影院| 免费夜色污私人影院在线观看| 亚洲av午夜国产精品无码中文字 | 亚洲精品综合久久| 美女视频黄a视频全免费网站色 | 亚洲国产天堂在线观看| 日韩人妻无码精品久久免费一 | 在线视频亚洲一区| 国产福利免费观看| 日韩大片免费观看视频播放| 又粗又硬又大又爽免费视频播放| 一级特黄aaa大片免费看| 亚洲色精品aⅴ一区区三区| 久久精品一区二区免费看| 亚洲永久中文字幕在线| 妞干网手机免费视频| 美国毛片亚洲社区在线观看| 亚洲AⅤ视频一区二区三区| sss在线观看免费高清| 亚洲成熟xxxxx电影| 4虎永免费最新永久免费地址| 亚洲色最新高清av网站| 亚洲国产精品人人做人人爱| 永久在线观看免费视频| 精品久久久久久亚洲精品| 日本高清免费不卡在线| 中文字幕免费人成乱码中国| 亚洲精品视频久久| 最好免费观看韩国+日本| 香蕉免费一级视频在线观看| 亚洲精品中文字幕乱码影院| 国产精品99久久免费| 久久免费精品视频| 亚洲国产精品成人午夜在线观看 | 亚洲天堂一区二区三区| 日产国产精品亚洲系列| 免费A级毛片无码专区|