Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tại sao JavaScript không có câu lệnh goto?

Thực tế

goto là từ khóa dự trữ (reserved keyword) trong JS – không thể dùng làm tên biến, nhưng không được triển khai.

Tại sao không có?

  • Gây spaghetti code – luồng điều khiển nhảy lộn xộn, khó đọc, khó debug, khó bảo trì.
  • Cấu trúc hiện đại (if/else, for/while, function, try/catch, break/continue label) đủ thay thế mọi trường hợp.
  • Web standards và best practices khuyến cáo tránh.

Mô phỏng goto (chỉ lý thuyết, KHÔNG dùng thực tế)

// Ý tưởng preprocessing
var a = 0;
[lbl] beginning:
console.log("Demo!");
a++;
if (a < 424) goto beginning;

// Biên dịch thành while + continue
var a = 0;
beginning: while (true) {
  console.log("Demo!");
  a++;
  if (a < 424) continue beginning;
  break;
}

Thay thế goto bằng gì?

Mục đích gotoThay thế JS
Lặp vô tậnwhile(true) + break
Nhảy ra nhiều cấp loopbreak label hoặc tách function + return
Bỏ qua phần codecontinue, if guard, tách hàm
State machineswitch trên state variable
Error handlingtry/catch/finally

Kết luận

Đừng bao giờ cố dùng goto trong JS. Hãy thành thạo các cấu trúc điều khiển có sẵn.