Dynamically Typed (ไดนามิกทายป์)
ภาษา dynamically typed เรียกอย่างนั้นเพราะชนิดข้อมูลเกี่ยวข้องกับค่า runtime คุณไม่ต้องระบุชนิดทุกครั้ง ตามชื่อ ชนิดของตัวแปรเป็น dynamic หมายถึงแม้ตั้งค่าตัวแปรเป็นชนิดหนึ่งแล้ว ก็สามารถเปลี่ยนได้
ภาษา dynamically typed รวมถึง Python, Perl, Ruby, JavaScript ฯลฯ
Untyped (อันไทป์)
ภาษา untyped เรียกว่าภาษา dynamically typed ด้วย คือภาษาที่ไม่บังคับให้กำหนดชนิดของตัวแปร
JavaScript เป็นภาษา untyped หมายความว่าตัวแปร JavaScript สามารถเก็บค่าชนิดข้อมูลใดๆ ได้ ใช้ var สำหรับการประกาศ ไม่ว่าจะเป็นตัวเลขหรือสตริง
var points = 100; var rank = 5;
ความเข้าใจที่ถูกต้อง (Technical Correction)
| คำศัพท์ | ความหมายจริง | ตัวอย่างภาษา |
|---|---|---|
| Dynamically Typed | ตัวแปรไม่มีชนิด ค่ามีชนิด ตรวจสอบชนิดขณะ runtime | JavaScript, Python, Ruby, PHP, Lua |
| Statically Typed | ตัวแปรมีชนิดคงที่ ตรวจสอบชนิดขณะ compile-time | C, C++, Java, Go, TypeScript, Rust |
| Untyped | ไม่มีระบบชนิดข้อมูลเลย (ทุกอย่างเป็น bit/word) | Assembly, Forth, BCPL, machine code |
JavaScript เป็น Dynamically Typed ไม่ใช่ Untyped — คำว่า "untyped" ในบทความเดิมเป็นการใช้คำผิด (common misconception)