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 是非常容易的。