Labels

2005 (136) 2004 (99) 2006 (84) 2007 (41) 2008 (41) 簡單生活 (24) 2012 (14) 網頁設計 (14) 電腦技巧 (13) 2009 (12) 2010 (10) PHP (10) 台灣晃一晃 (9) Learn Note (7) 地球這麼大 (6) 2011 (5) Mysql (3) Smarty (3) Vista (3) 手機待吐 (2) 2014 (1) 2021 (1) Composer (1) Laravel (1) MAC (1) MAMP (1) 新新人類新科技 (1)

20070327

ja<x>vascript 簡介

誕生

Netscape 公司於 1994 年 4 月成立, 初時發展了一種電腦語言 LiveScript , 其發展目的主要有兩個: 第一, 在伺服器端, 附助 Netscape 發展的伺服器程式 LiveWire。 第二, 在客戶端, 加強 HTML 的表達能力, 亦即是提高網頁的互動性。



當時 Sun 公司也在發展 Java , 其後因為 Sun 公司與 Netscape 公司合作發展 LiveScript , 所以 LiveScript 就改名做 ja<x>vascript, 而發展目的也多了一個, 就是附助 Java 在網頁上運作, 最後, ja<x>vascript 於 1995 年 12 月誕生了, 版本為 1.0 , 支援的瀏覽器有 Netscape Navigator 2.0 。



根據 Netscape 公司的統計, 現時網上有大約 3 百萬網頁使用了 ja<x>vascript 。



若果想了解 ja<x>vascript 的版本資訊, 請參看本站的初階教學。



功能

ja<x>vascript 可分成兩類: Client-Side ja<x>vascript (客戶端 ja<x>vascript) 和 Server-Side ja<x>vascript (伺服器端 ja<x>vascript), 而本站所講述的 ja<x>vascript 只限於客戶端 ja<x>vascript , 至於伺服器端 ja<x>vascript , 可以去 Netscape ja<x>vascript Reference 。



顧名思義, 客戶端可以是我們所用的瀏覽器, 客戶端 ja<x>vascript 只可以在瀏覽器內執行。



很多人會以為 ja<x>vascript 和 Java 是同一樣東西, 其實它們在技術上是有很大分別的, 它們只是語法相近而已。 以下是 ja<x>vascript 和 Java 的基本分別:




















 ja<x>vascript  Java
 編寫在 HTML 檔內  不能編寫在 HTML 檔

 瀏覽器在開啟 HTML 檔時會直譯 (Interpret) ja<x>vascript, 之後就可執行  編寫的程式需要編譯 (Complie) 做 Java byte-code 才可執行
 不能讀寫檔案, 最多只能運用 Cookie 技術儲存少許資料在瀏覽器,不能控制網絡  可以讀寫檔案,可以控制網絡





ja<x>vascript 沒有一般伺服器及網絡控制的功能, 而為了防止網絡病毒散播, JavScript 也不能讀寫檔案。 ja<x>vascript 的發展目的在於提高網頁的互動性, 所以在網頁內容控制方面, ja<x>vascript 算是最方便快捷的。



在未有 ja<x>vascript 之前, 很多網頁的互動都要靠 CGI (共同閘道介面), 簡單來說就是在伺服器執行一個程式, 這個程式可以處理瀏覽器所提供的資料, 例如接收客戶端送出的表單資料, 然後檢查錯誤, 有錯就傳回網頁, 指出那些地方有錯, 當客戶端改正錯誤後就再送出表單, 直至資料正確為止。



有了 ja<x>vascript 之後, 很多工作都可以在瀏覽器完成, 大大減少伺服器的工作。 例如當客戶端決定送出表單, 就可以用 ja<x>vascript 來檢查表單資料的表面錯誤, 例如打錯了電郵地址、打漏了姓名等, 這時 ja<x>vascript 可以彈出一個瀏覽器訊息, 通知他資料錯誤, 直至沒有錯誤才送出表單。檢查這些不用和伺服器溝通的錯誤, 就可以用 ja<x>vascript 了, 但也不可以完全依賴 ja<x>vascript , ja<x>vascript 只能減輕伺服器的工作, 而不能取代它的工作。



語言特性

大小楷有別 (Case sensitve)

這點與 HTML 標記不同, 例如 bgcolor、bgColor、BgColor 和 BGCOLOR 都是不同的東西。



物件導向 (Object-Oriented)

物件導向可以說是一種思考方法, 它把任何東西都視作一個物件, 當你想做某些工作時, 只要想想該件工作與什麼物件有關, 就可以很容易去表示它, 而不用硬記一些沒有關聯的指令名稱。



寬鬆型態 (Loosely Typed)

如果你有電腦語言的認識, 就會知道資料是有不同的型態的, 例如字串、數目等, 而且當要轉變資料型態時, 就要寫一些敘述來處理。



不過 ja<x>vascript 的資料型態是可以隨時變更的, 例如一個變數原本是字串型態, 你也可以用它來儲存數目。 這就是 ja<x>vascript 容易學習的原因, 不過站長還是建議大家小心運用這個特性。



危機

支援性

ja<x>vascript 可以在 NN 2.0 , IE 3.0 和 Opera 3.0 或以上版本的瀏覽器執行, 但執行的結果未必完全相同, 就好像 HTML 網頁會有不同的效果, 所以寫 ja<x>vascript 也須要在不同的瀏覽器測試執行結果, 對於初學者來說是很難掌握的。



就算這些瀏覽器支援 ja<x>vascript , 但瀏覽者會因為某些原因而關閉 ja<x>vascript 功能, 例如現在很多免費網頁供應商都在用戶的網頁加入 ja<x>vascript 突現廣告視窗 (pop-up window), 還有那些設計得很差的網頁往往濫用了 ja<x>vascript , 這些都會令瀏覽者覺得煩厭而關閉 ja<x>vascript 功能。



保安漏洞

瀏覽者也會怕 ja<x>vascript 有保安漏洞, 或者怕 ja<x>vascript 會拖慢網頁下載速度而關閉 ja<x>vascript。 而事實證明, ja<x>vascript 和其它同類東西一樣, 都存在保安漏洞的問題。



未來發展

站長聽聞遲些 ja<x>vascript 語言會有統一的標準, 相信到時就不會出現不同瀏覽器有不同的執行結果了。 



學習 ja<x>vascript 的基本條件

對 HTML 非常熟識, 因為 ja<x>vascript 是寫在 HTML 檔內, 而且會用到 HTML 檔內的元件, 例如表單、連結和窗柜等。

對程式設計有基本認識, 例如一般程式的敘述, 如果你已學識了一種語言, 就會發覺 ja<x>vascript 是非常容易的。