雖然JavaScript與 Java有緊密的聯系但卻是兩個公司開發的不同的產品Java是SUN公司推出的新一代面向對象的程序設計語言特別適合於Internet應用程序開發;而JavaScript是Netscape公司的產品其目的是為了擴展Netscape Navigator功能而開發的一種可以嵌入Web頁面中的基於對象和事件驅動的解釋性語言 它的前身是Live Script;而Java的前身是Oak語言下面對兩種語言間的異同作如下比較
基於對象和面向對象
Java是一種真正的面向對象的語言即使是開發簡單的程序必須設計對象 JavaScript是種腳本語言它可以用來制作與網絡無關的與用戶交互作用的復雜軟件它是一種基於對象(Object Based)和事件驅動(Event Driver)的編程語言因而它本身提供了非常豐富的內部對象供設計人員使用
解釋和編譯
兩種語言在其浏覽器中所執行的方式不一樣Java的源代碼在傳遞到客戶端執行之前必須經過編譯因而客戶端上必須具有相應平台上的仿真器或解釋器它可以通過編譯器或解釋器實現獨立於某個特定的平台編譯代碼的束縛
JavaScript是一種解釋性編程語言其源代碼在發往客戶端執行之前不需經過編譯而是將文本格式的字符代碼發送給客戶編由浏覽器解釋執行
強變量和弱變量
兩種語言所采取的變量是不一樣的Java采用強類型變量檢查即所有變量在編譯之前必須作聲明如:
Integer x;
String y;
x=;
x=;
其中X=說明是一個整數Y=說明是一個字符串JavaScript中變量聲明采用其弱類型即變量在使用前不需作聲明而是解釋器在運行時檢查其數據類型如
x=;
y=;
前者說明x為其數值型變量而後者說明y為字符型變量
代碼格式不一樣
Java是一種與HTML無關的格式必須通過像HTML中引用外媒體那麼進行裝載其代碼以字節代碼的形式保存在獨立的文檔中JavaScript的代碼是一種文本字符格式可以直接嵌入HTML文檔中並且可動態裝載編寫HTML文檔就像編輯文本文件一樣方便
嵌入方式不一樣
在HTML文檔中兩種編程語言的標識不同
靜態聯編和動態聯編
Java采用靜態聯編即Java的對象引用必須在編譯時的進行以使編譯器能夠實現強類型檢查JavaScript采用動態聯編即JavaScript的對象引用在運行時進行檢查如不經編譯則就無法實現對象引用的檢查
From:http://tw.wingwit.com/Article/program/Java/JSP/201311/20751.html