Định nghĩa
Label là identifier theo sau dấu hai chấm (:) gắn cho một statement hoặc block. Dùng với break/continue để chỉ định mục tiêu trong nested loop.
Cú pháp
labelName: statement
// hoặc
labelName: {
// block statements
}
Ví dụ Break với Label
<script>
document.write("Vao vong lap<br>");
outer: for (var i = 0; i < 5; i++) {
document.write("Outer: " + i + "<br>");
inner: for (var j = 0; j < 5; j++) {
if (j > 3) break; // thoát inner
if (i == 2) break inner; // thoát inner (explicit)
if (i == 4) break outer; // thoát outer
document.write(" Inner: " + j + "<br>");
}
}
document.write("Thoat!<br>");
</script>
Ví dụ Continue với Label
<script>
document.write("Vao vong lap<br>");
outer: for (var i = 0; i < 3; i++) {
document.write("Outer: " + i + "<br>");
for (var j = 0; j < 5; j++) {
if (j == 3) continue outer; // bỏ qua j=3,4, sang i++
document.write(" Inner: " + j + "<br>");
}
}
document.write("Thoat!<br>");
</script>
Đặc điểm
- Label không tạo scope mới.
- Chỉ hợp lệ với
break/continue(JS không cógoto). - Label name tuân theo quy tắc identifier (không trùng từ khóa).
Khuyến nghị
Hiếm dùng trong code hiện đại. Ưu tiên:
- Tách hàm +
return. Array.prototype.some/every/find.- Refactor logic phức tạp.