2015-10-06 24 views
5

Tôi đã tìm thấy một đoạn mã trong dự án của công ty tôi như sau:Cú pháp này có nghĩa là cái nào thích `functionName: {}`?

while(condition){   
     code... 

     reloop: { 
      if(somethingIsTrue) { 
       break reloop; 
      } 
     } 

     code... 
} 

Tôi không hiểu những gì reloop làm, bất cứ ai có thể đưa ra một lời giải thích đơn giản?

+2

Đó là nhãn: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label –

+1

... và 'ngắt' cho phép bạn thoát ra khỏi nhãn: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break – Jamiec

+2

Nó cũng tương đương với JavaScript của Goto ... đáng sợ xấu (IMHO) –

Trả lời

3

reloop: là một label. Chúng hiếm khi được sử dụng và phục vụ một mục đích rất cụ thể: chúng cho phép bạn break hoặc continuebên ngoài vòng lặp từ vòng bên trong.

Bài viết về MDN about labels giải thích điều này tốt hơn.

Lưu ý rằng nhãn rất ít được sử dụng, và phần lớn thời gian cần một nhãn gợi ý rằng mã của bạn là không rõ ràng, và cần được tái cơ cấu. Tôi chưa bao giờ, thậm chí không một lần, đã sử dụng nhãn ở javascript.

Tránh chúng trừ khi chúng thực sự là giải pháp sạch duy nhất cho đoạn mã chứng minh khó viết. Thay vào đó, hãy ưu tiên, tách mã thành các hàm mà bạn có thể return từ.

Các vấn đề liên quan