mozilla
Vos résultats de recherche

    label

    Une instruction étiquetée (labeled en anglais) peut être utilisée avec les instructions break ou continue. Un label permet d'identifier une instruction avec un identifiant pour y faire référence plus tard.

    Syntaxe

    label :
       instruction
    
    label
    N'importe quel identifiant JavaScript qui n'est pas un mot-clé réservé.
    instruction
    Une instruction. break peut être utilisé avec n'importe quelle instruction identifiée. continue ne peut être utilisé qu'avec des instructions de boucle.

    Description

    Une étiquette (label) peut être utilisée pour identifier une boucle et pour y faire référence à l'intérieur en utilisant les instructions break ou continue afin d'interrompre cette boucle ou de reprendre son exécution.

    JavaScript ne possède pas d'instruction goto, les étiquettess ne peuvent être utilisées que par les instructions break ou continue.

    Exemples

    Faire référence à une étiquette avec continue dans une boucle

    var i, j;
    
    boucle1:
    for (i = 0; i < 3; i++) {      //Le premier for correspond à "boucle1"
       boucle2:
       for (j = 0; j < 3; j++) {   //Le second for correspond à "boucle2"
          if (i == 1 && j == 1) {
             continue boucle1;
          } else {
             console.log("i = " + i + ", j = " + j);
          }
       }
    }
    
    // On aura les résultats suivants :
    //   "i = 0, j = 0"
    //   "i = 0, j = 1"
    //   "i = 0, j = 2"
    //   "i = 1, j = 0"
    //   "i = 2, j = 0"
    //   "i = 2, j = 1"
    //   "i = 2, j = 2"
    // On voit bien l'absence de "i = 1, j = 1" et "i = 1, j = 2"
    

    Second exemple utilisant continue

    Étant donné un tableau d'élément et un tableau de tests, cet exemple donne le nombre d'éléments qui ont réussi tous les tests.

    var nbItemsReussis = 0;
    var i, j;
    
    top:
    for (i = 0; i < items.length; i++){
      for (j = 0; j < tests.length; j++)
        if (!tests[j].reussi(items[i]))
          continue top;
      nbItemsReussis++;
    }

    Utiliser break avec une étiquette au sein d'une boucle for

    var i, j;
    
    boucle1:
    for (i = 0; i < 3; i++) { // première boucle étiquetée « boucle1 »
      boucle2:
      for (j =0; j < 3; j++) { // seconde boucle étiquetée « boucle2 »
        if (i == 1 && j == 1) {
          break boucle1;
        }
        console.log("i = " + i + ", j = " + j);
      }
    }
    
    // Ce qui produira en sortie
    // (dans la console)
    // "i = 0, j = 0"
    // "i = 0, j = 1"
    // "i = 0, j = 2"
    // "i = 1, j = 0"
    // Ici on voit la différence avec l'exemple précédent utilisant continue
    

    Second exemple utilisant un label et break

    Étant donné un tableau d'éléments et un tableau de tests, cet exemple permet de déterminer si oui ou non tous les éléments ont réussis tous les tests.

    var toutReussi = true;
    var i, j;
    
    top:
    for (i = 0; items.length; i++)
      for (j = 0; j < tests.length; i++)
        if (!tests[j].reusi(items[i])){
          toutReussi = false;
          break top;
        }
    

    Spécifications

    Spécification Statut Commentaires
    Troisième édition d'ECMAScript Standard Définition initiale. Implémentée avec JavaScript 1.2.
    ECMAScript 5.1 (ECMA-262)
    La définition de 'Labelled statement' dans cette spécification.
    Standard  
    ECMAScript 6 (ECMA-262)
    La définition de 'Labelled statement' dans cette spécification.
    En cours de validation comme recommandation  

    Compatibilité des navigateurs

    Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui)
    Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
    Support simple (Oui) (Oui) (Oui) (Oui) (Oui) (Oui)

    Voir aussi

    Étiquettes et contributeurs liés au document

    Contributors to this page: teoli, SphinxKnight
    Dernière mise à jour par : SphinxKnight,
    Masquer la barre latérale