2009年4月10日 星期五

什麼是 JavaScript

JavaScript

是一種直譯式語言,它可以被嵌入 HTML 的檔之中。可以用來處理一些畫面的特效,例如變換圖片、彈出式的選單、電子時鐘、拼圖遊戲等。不同於伺服器端腳本語言,例如PHPASP,JavaScript是client端腳本語言,其原始碼在發往客戶端執行之前不需經過編譯,而是將文字格式的字元代碼發送給瀏覽器由瀏覽器解釋執行,也就是說JavaScript是在用戶的瀏覽器上運行,不需要伺服器的支援而可以獨立運行隨著網頁下載到你的電腦後,便會自動執行這些程式來做出特效,通過 JavaScript 可以做到回應用戶的需求事件(如表單的輸入),這樣當一位使用者輸入一項資訊時,它不需要通過網路傳送到伺服器端進行處理再傳回來的過程,而可以直接在用戶端進行事件的處理。但因為各家瀏覽器的不同,寫程式時要注意到相容性的問題,比方說獨大的IE就單純只參考W3C的規範,自訂自己的標準,寫程式時要特別注意~


優點是:

可以減少對伺服器的負擔。而隨著伺服器的強壯,雖然現在的程式員更喜歡運行於伺服端的腳本以保證安全,但JavaScript仍然以其跨平台、容易上手等優勢大行其道。


缺點是:

解釋語言的弱點是安全性較差,而且在JavaScript中,如果一條執行不了,那麼下面的語言也無法執行。而且由於每次重新載入都會重新解譯,載入後,有些代碼會延遲至運行時才解譯,甚至會多次解譯,所以速度較慢。



Javascript與Java

  JavaScript Java 很相似,但它們卻是完全不同的語言! Java 是由 Sun Microsystem 公司開發的一種面向物件的程式設計語言,類似於C++,它需要多種編譯器和支援檔才能運行;但於 C++ 不同的是,Java 可以獨立於任何操作平臺,因此它就在當今 Internet 網路各種操作平臺的基礎上得以迅速發展。但它是一種比 JavaScript 複雜得多的標準程式語言。JavaScript 則是相對容易瞭解的函數式語言,JavaScript承襲了Java與Perl的語法JavaScript 撰寫人員可以不那麼注重編程技巧,例如宣告所有的變數、類和方法,您也不必關心諸如 public private protected 之類的費解的東西;更重要的是,它只能存在於一個 HTML Script中,而且只有在裝入一個相容的瀏覽器時才能運行,所以許多 Java 的特性在 JavaScript 中並不支持。現在,JavaScript 完全相容於 ECMA-262 標準(歐洲電腦製造協會的 JavaScript 標準);如需瞭解的更多資訊,請參閱 Netscape 的有關 Netscape JavaScript 的介紹(微軟也有一個 JavaScript 的變種,稱之為 JScript)。


因 為Javascript與Java都可以在網頁上做出動態效果,而且JavaScript還可以控制網頁上的Java Applet,所以可以互相搭配。此外,他們也都能配合伺服端程式,做出一些特別的東西;例如Google Map就利用了JavaScript和後端程式的配合,讓地圖上每一格的圖片可以在使用者移動到看到它時才開始載入,以節省流量;此外,Google Mail和Yahoo!Mail的收件者裡打了一個字,通訊錄中以那個字為開頭的帳號就會出現在下方讓你選,這也是一樣的應用。這種技術,稱為AJAX


JavaScript直譯式語言

編譯語言例 如Java。Java的源代碼在傳遞到客戶端執行之前,必須經過編譯,因而客戶端上必須具有相應平台上的模擬器或解釋器,它可以通過編譯器或解釋器實現 獨立於某個特定的平台編譯代碼的束縛。但是它必須在服務器端進行編譯,這樣就拖延了時間。但因為已經封裝,所以能保證安全性。

因為程式需要編譯後才能用,故就會牽涉到編譯器、連結器、函式庫 .... 等等各式各樣的跨平台問題,等著我們去傷腦筋。

然而,另外有一類的語言所寫出的程式是不需要「編譯」的,稱之為「直譯式語言」,這類語言只需要一個直譯器 (interpreter) 來做程式碼的翻譯,就可以完成我們想做的工作。故使用直譯式語言顯然就單純許多,比較沒有跨平台方面的問題。


語法特色~
JavaScript 是一種動態資料類型語言,也就是說,當聲明一個變數時不必指定資料的類型,當程式執行時它會自動將其轉換為所需要的類型。而當在一個運算式中將一個字串類型的值和數值型的值進行“+”運算時,JavaScript 會將數值轉換為字串

沒有留言:

張貼留言

try comments