ใน Python semicolon เป็นทางเลือก (optional) ใช้คั่นคำสั่งหลายคำสั่งในบรรทัดเดียวได้ แต่ไม่บังคับ
ใน JavaScript semicolon ก็เป็นทางเลือกเช่นกัน (Automatic Semicolon Insertion - ASI) แต่ แนะนำให้ใส่เสมอ เพราะบางครั้งการไม่ใส่จะทำให้ parser แทรก semicolon เองผิดที่ เปลี่ยนความหมายของโค้ด
ตัวอย่างปัญหา ASI ใน JavaScript
// โค้ดที่เขียน (ไม่มี semicolon)
function sub(p, q) {
return
p + q
}
// จริงๆ แล้ว JavaScript parse เป็น:
function sub(p, q) {
return; // ← ASI แทรก semicolon ที่นี่!
p + q; // โค้ดนี้ unreachable
}
// ผลลัพธ์: คืนค่า undefined เสมอ (ไม่ใช่ p + q)
ใน Python ไม่มีปัญหานี้
Python ใช้ indentation กำหนดบล็อก ไม่ขึ้นอยู่กับ semicolon หรือ braces
def sub(p, q):
return p + q # ไม่ต้อง semicolon, indentation ชัดเจน
สรุป
- Python: Semicolon optional, ไม่ค่อยใช้, ใช้ newline + indentation แทน
- JavaScript: Semicolon optional แต่ แนะนำให้ใส่เสมอ ป้องกัน ASI bugs