คำตอบสั้นๆ
JavaScript มี goto เป็นคำสงวน (reserved keyword) แต่ไม่ได้นำไปใช้งานจริง เนื่องจากไม่จำเป็นในภาษานี้ และการใช้ goto โดยทั่วไปไม่ถือเป็น Good Practice
รายละเอียด
แม้ JavaScript จะสงวนคำว่า goto ไว้ แต่ไม่ได้ implement การทำงานใดๆ การใช้ goto ทำให้โค้ดยากต่อการอ่าน บำรุงรักษา และดีบัก (Spaghetti Code) จึงไม่แนะนำให้ใช้
ตัวอย่างการจำลอง goto ด้วย Preprocessing
บางเครื่องมือ preprocessing อนุญาตให้เขียนรูปแบบ goto แล้วแปลงเป็นโค้ด JavaScript มาตรฐาน:
// โค้ดต้นฉบับ (พรีโปรเซสเซอร์)
var a = 0;
[lbl] beginning: console.log("Demo Text!");
a++;
if(i < 424) goto beginning;
// จะถูกแปลงเป็น
var a = 0;
beginning: while(true) {
console.log("Demo Text!");
a++;
if(i < 424) continue beginning;
break;
}
ทางเลือกที่ดีกว่า
แทน goto ควรใช้โครงสร้างควบคุมมาตรฐาน:
- ลูป
while,for,do-while - คำสั่ง
breakและcontinue(รองรับ label) - ฟังก์ชันและการรีเทิร์นก่อนเวลา (Early return)
- Try-catch สำหรับจัดการข้อผิดพลาด
สรุป
JavaScript ไม่มี goto ที่ทำงานจริง เพราะมีโครงสร้างควบคุมที่ทรงพลียงพอแล้ว การหลีกเลี่ยง goto ทำให้โค้ดสะอาด เข้าใจง่าย และปลอดภัยกว่า