後端語言 基礎
靜態型別 vs 動態型別語言的差異?各自適合什麼場景?
靜態型別 vs 動態型別
靜態型別
型別在編譯時確定,變數型別不可改變
- 代表語言:Java、Go、Rust、TypeScript、C++
- ✅ 編譯期捕捉型別錯誤,IDE 支援更好
- ✅ 效能較佳(型別在編譯時已知)
- ❌ 需要額外的型別宣告,開發稍慢
動態型別
型別在執行時確定,變數可持有任意型別
- 代表語言:Python、Ruby、JavaScript、PHP
- ✅ 開發速度快,原型設計靈活
- ❌ 型別錯誤在執行時才發現
- ❌ 大型專案難以維護
強型別 vs 弱型別(不同概念!)
- 強型別:不隱式轉換不相容型別(Python:
"1" + 1→ TypeError) - 弱型別:允許隱式型別轉換(JavaScript:
"1" + 1 = "11")
現代趨勢:兩者融合
- TypeScript = JavaScript + 靜態型別
- Python 的 Type Hints + mypy 靜態分析
- 動態語言逐漸走向「可選靜態型別」
面試加分:TypeScript 是「結構型別系統」(duck typing),Python 的型別系統是「漸進式型別」(gradual typing),了解這些差異展現深度。
✦ AI 模擬面試
輸入你的答案,AI 即時分析精準度與改進空間
登入後即可使用 AI 評分
