| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Statements/label | [Back] [Original] |
Get to know MDN better
Cette page a t traduite partir de l'anglais par la communaut. Vous pouvez contribuer en rejoignant la communaut francophone sur MDN Web Docs.
Cette fonctionnalit est bien tablie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
Une instruction tiquete (labeled en anglais) peut tre utilise avec les instructions break ou continue. Un label permet d'identifier une instruction avec un identifiant pour y faire rfrence plus tard.
let str = "";
loop1: for (let i = 0; i < 5; i++) {
if (i === 1) {
continue loop1;
}
str = str + i;
}
console.log(str);
// Expected output: "0234"
Note : Les boucles ou les blocs tiquets sont trs rares et on peut gnralement utiliser des appels de fonction plutt que des sauts de boucle.
label: instruction;
labelN'importe quel identifiant JavaScript qui n'est pas un mot-cl rserv.
instructionUne instruction. break peut tre utilis avec n'importe quelle instruction identifie. continue ne peut tre utilis qu'avec des instructions de boucle.
Une tiquette (label) peut tre utilise pour identifier une boucle et pour y faire rfrence l'intrieur en utilisant les instructions break ou continue afin d'interrompre cette boucle ou de reprendre son excution.
JavaScript ne possde pas d'instruction goto, les tiquettes ne peuvent tre utilises que par les instructions break ou continue.
En mode strict, on ne peut pas utiliser let comme tiquette, cela lvera une exception SyntaxError (let est un identifiant rserv).
continue dans une bouclevar 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 rsultats 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"
continuetant donn un tableau d'lment et un tableau de tests, cet exemple donne le nombre d'lments qui ont russi 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++;
}
break avec une tiquette au sein d'une boucle forvar i, j;
boucle1: for (i = 0; i < 3; i++) {
// premire boucle tiquete boucle1
boucle2: for (j = 0; j < 3; j++) {
// seconde boucle tiquete 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 diffrence avec l'exemple prcdent utilisant continue
breaktant donn un tableau d'lments et un tableau de tests, cet exemple permet de dterminer si oui ou non tous les lments ont russis 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;
}
breakOn peut utiliser des tiquettes dans des blocs simples mais seul break permettra de faire rfrence des tiquettes en dehors d'une boucle.
toto: {
console.log("face");
break toto;
console.log("this will not be executed");
}
console.log("swap");
// On aura alors dans la console :
// "face"
// "swap
partir d'ECMAScript 2015, les dclarations de fonctions tiquetes sont standardises pour du code non-strict au sein de l'annexe de la spcification relative la compatibilit web.
L: function F() {}
En revanche, en mode strict, cela lvera une exception SyntaxError:
"use strict";
L: function F() {}
// SyntaxError: functions cannot be labelled
Les fonctions gnratrices ne peuvent pas tre tiquetes, en mode strict, comme en mode non-strict :
L: function* F() {}
// SyntaxError: generator functions cannot be labelled
| Spcification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-labelled-statements |
Cette page a t modifie le 7 sept. 2026 par les contributeurices du MDN.
Certaines parties de ce contenu sont protges par le droit d'auteur 19982026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.
| Web Proxy Viewer | New URL | Original Page |