Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ความแตกต่างของ Semicolon (;) ระหว่าง JavaScript และ Python

ใน 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