Câu lệnh có nhãn JavaScript

Hướng dẫn về một tính năng JavaScript rất hiếm khi được sử dụng: câu lệnh được gắn nhãn

JavaScript có một chức năng tương đối không xác định cho phép bạn gắn nhãn các câu lệnh.

Gần đây tôi đã thấy tính năng này được sử dụng trong Svelte để cấp nguồn cho các khai báo phản ứng, được tính toán lại bất cứ khi nào các biến được khai báo trong câu lệnh thay đổi:

$: console.log(variable)

Họ cũng cho phép sử dụngkhối tuyên bố, một tính năng khác của JavaScript cho phép bạn xác định một khối bất cứ khi nào bạn có thể xác định một câu lệnh:

$: {
  console.log(variable)
  console.log('another thing')
  //...
}

Điều này có vẻ lạ, nhưng đó là JavaScript chính xác. Khối câu lệnh này được gán cho$ nhãn.

Trình biên dịch Svelte bên trong sẽ sử dụng điều này để cấp nguồn cho các khai báo phản ứng.

Tôi chưa bao giờ sử dụng tính năng này ở bất kỳ nơi nào khác, nhưng trường hợp sử dụng chính là thoát ra khỏi một câu lệnh không phải là vòng lặp hoặc công tắc đi kèm gần nhất.

Đây là một ví dụ đơn giản để giải thích ý tôi.

Gọi ngắt ở bất kỳ điểm nào trong số đó ngắt khỏi công tắc, để tránh chạy các trường hợp khác:

for (let y = 0; y < 3; y++) {
  switch (y) {
    case 0:
      console.log(0)
      break
    case 1:
      console.log(1)
      break
    case 2:
      console.log(2)
      break
  }
}

Điều này sẽ in0 1 2vào bảng điều khiển, như mong đợi.

Nhưng nếu chúng ta muốn thoát ra khỏiforkhi chúng tôi đạt đượccase 1? Đây là cách:

loop: for (let y = 0; y < 3; y++) {
  switch (y) {
    case 0:
      console.log(0)
      break
    case 1:
      console.log(1)
      break loop
    case 2:
      console.log(2)
      break
  }
}

Điều này sẽ in0 1vào bảng điều khiển.

Tải xuống miễn phí của tôiSổ tay dành cho Người mới bắt đầu JavaScript


Các hướng dẫn js khác: