2015-10-06 40 views
5

我發現了一段代碼在我公司的項目如下所示:這個語法是什麼意思,它喜歡`functionName:{}`?

while(condition){   
     code... 

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

     code... 
} 

我不明白是什麼reloop做,任何人都可以給出一個簡單的解釋?

+2

這是一個標籤:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label –

+1

...和'break'允許您打破標籤:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break – Jamiec

+2

它也是一個Goto的JavaScript等價物......恐怖的壞(恕我直言) –

回答

3

reloop:是一個label。他們很少使用,並提供了一個非常特定的目的:他們讓你breakcontinue環從環。

MDN about labels上的文章更好地解釋了這一點。

注意標籤很少使用,並且大部分時間需要一個標籤,提示你的代碼是不明確的,應該進行重組。我從來沒有,甚至沒有使用javascript中的標籤。

避免它們,除非它們真的是唯一的清晰解決方案,這些解決方案經證明難以編寫。相反,首選將代碼拆分爲您可以從return開始的功能。