雖名稱相似,JavaScript(Netscape 開發,前身 LiveScript)與 Java(Sun 開發,前身 Oak)截然不同。前者為嵌入網頁的基於物件、事件驅動直譯語言;後者為面向物件編譯語言,專為網際網路應用設計。以下六大維度深度比較:
1. 物件模型:基於物件 vs 面向物件
- Java:純面向物件,即使簡單程式也必須設計類別。
- JavaScript:基於物件 + 事件驅動,內建豐富內部物件供直接使用。
2. 執行機制:編譯 vs 直譯
- Java:原始碼編譯為位元碼,客戶端需 JVM 執行,達到跨平台。
- JavaScript:原始碼以文字形式傳遞,瀏覽器直譯執行,無編譯步驟。
3. 型別系統:強型別 vs 弱型別
- Java:編譯前必須宣告變數型別(
int x; String y;),強型別檢查。
- JavaScript:變數無需宣告,執行時動態推斷型別(
x=1234; y="4321")。
4. 程式碼格式與載入
- Java:獨立 .class 檔,以位元碼儲存,透過
<APPLET> 標籤載入。
- JavaScript:文字原始碼直接內嵌 HTML,動態載入,編寫如同編輯文字檔。
5. 嵌入標籤差異
- JavaScript:
<SCRIPT>...</SCRIPT>
- Java:
<APPLET>...</APPLET>
6. 連結時機:靜態 vs 動態
- Java:編譯期靜態連結,確保強型別檢查。
- JavaScript:執行期動態連結,物件引用在運行時檢查。
掌握差異,才能在專案中正確選型:Java 適合複雜企業級應用,JavaScript 則是網頁互動的首選腳本。