語法對比基礎
本模組深入探討 JavaScript 和 C++ 之間的基本語法差異,涵蓋變數宣告、控制流程、函式和基本資料類型。
變數宣告和類型系統
JavaScript 是動態類型語言,這表示變數類型在運行時確定。C++ 是靜態類型語言,需要在編譯時進行明確的類型宣告。
正在載入編輯器...
控制流程語句對比
兩種語言都支援 if/else、for、while 和 switch 等常見的控制流程結構,但語法上略有不同。
If/Else 語句
正在載入編輯器...
For 迴圈
正在載入編輯器...
函式定義和呼叫
C++ 中的函式通常需要明確的返回類型和參數類型,但也可以透過 auto 關鍵字(C++11)進行類型推斷,或使用模板實現泛型函式。
正在載入編輯器...
作用域和生命週期
兩種語言都具有區塊作用域,但 C++ 變數的生命週期與其作用域的關聯更為明確。
正在載入編輯器...
基本資料類型對比
C++ 擁有一組更豐富的具有固定大小的基本資料類型,對記憶體有更多的控制。
| JavaScript 類型 | C++ 等效類型 |
|---|---|
number | int, float, double, long, short, 等 |
string | std::string, char[], char* |
boolean | bool |
null | nullptr (C++11), NULL (C 樣式) |
undefined | 沒有直接等效;通常由 nullptr 或特定邏輯表示 |
object | class, struct, union |
symbol | 沒有直接等效 |
bigint | long long (用於更大的整數), 外部函式庫用於任意精度 |
運算子和表達式
大多數算術、比較和邏輯運算子是相似的,但 C++ 還有用於指標和記憶體管理的額外運算子。
正在載入編輯器...
模組匯入和標頭檔包含
C++ 使用 #include 預處理器指令來包含標頭檔,類似於 JavaScript 中的 import 語句。C++ 的命名空間用於組織程式碼並防止命名衝突。
正在載入編輯器...
練習題:
- 解釋靜態類型和動態類型之間的區別,並提供 JavaScript 和 C++ 的範例。
- 編寫一個 C++ 程式,接收使用者年齡作為輸入,並使用
if/else if/else語句列印他們是未成年人、成年人還是老年人。 - 命名空間在 C++ 程式設計中有何幫助?提供一個簡單的範例。
專案構想:
- 用 C++ 創建一個簡單的命令行程式,根據使用者輸入計算不同形狀(圓形、矩形、三角形)的面積,展示函式使用和基本資料類型。