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

Sự khác biệt giữa break có label và không label trong JavaScript

Break KHÔNG label

Thoát khỏi vòng lặp gần nhất (inner-most).

while (x < 20) {
  if (x == 5) break; // thoát while này
  x++;
}

Break CÓ label

Thoát khỏi vòng lặp có label chỉ định (thường là outer loop).

outer: for (var i=0; i<5; i++) {
  for (var j=0; j<5; j++) {
    if (i==2 && j==1) break outer; // thoát cả 2 vòng
    console.log(i,j);
  }
}
// Output: (0,0-4), (1,0-4), (2,0) -> stop

So sánh

Đặc điểmbreak (no label)break label
Phạm vi thoátVòng lặp chứa nó (innermost)Vòng lặp có label khớp
Dùng choSingle loop, switchNested loop cần thoát outer
SwitchThoát switchKhông áp dụng (switch không có label)

Khi nào dùng label

  • Nested loop cần thoát hẳn từ deep level.
  • Tìm kiếm 2D: tìm thấy → break outer.

Thay thế hiện đại (khuyên dùng)

// Tách hàm + return
function find(matrix, target) {
  for (const row of matrix) {
    for (const cell of row) {
      if (cell === target) return cell;
    }
  }
  return null;
}