2015-10-06 15 views
5

ho trovato un pezzo di codice nel progetto della mia azienda come la seguente:Cosa significa questa sintassi a cui piace `functionName: {}`?

while(condition){   
     code... 

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

     code... 
} 

Non capisco cosa reloop fa, qualcuno può dare una spiegazione semplice?

+2

È un'etichetta: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label –

+1

... e 'break' ti permette di uscire da un'etichetta: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/break – Jamiec

+2

È anche l'equivalente JavaScript di Goto ... pauroso (IMHO) –

risposta

3

reloop: è un label. Vengono usati raramente e hanno uno scopo ben preciso: consentono di effettuare lo break o continueesterno loop da interno loop.

L'articolo su MDN about labels lo spiega meglio.

Si noti che le etichette sono usato molto raramente, e la maggior parte del tempo che necessitano di un'etichetta suggerisce che il codice non è chiaro, e dovrebbe essere ristrutturato. Non ho mai, neanche una volta, usato un'etichetta in javascript.

Evitarli a meno che non siano veramente l'unica soluzione pulita a un pezzo di codice che risulta difficile da scrivere. Preferisci, invece, suddividere il codice in funzioni che puoi return da.

Problemi correlati