後端語言 基礎

靜態型別 vs 動態型別語言的差異?各自適合什麼場景?

AI 練習作答

靜態型別 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 評分