label (Etiqueta)
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since julho de 2015.
Provém uma declaração com um indentificador o qual pode ser referido posteriormente utilizando-se os comandos break ou continue.
Por exemplo, você pode usar um label para identificar um laço e então com um comando de break ou continue indicar se este deve ser interrompido ou então continuar sua execução.
Sintaxe
label : declaração
Parâmetros
label-
Qualquer idenfiticador JavaScript válido que não é uma palavra reservada.
declaração-
Uma declaração qualquer. break pode ser utilizado com qualquer declaração entiquetada (com label) , assim como o continue também pode.
Evite usar labels
Labels não são comunmente utilizados em JavaScript já que estes fazem com que programas fiquei mais difÃceis de ler e entender. Sempre que possÃvel evite utilizar labels e, dependendo dos casos, prefira chamar funções ou lançar um erro
Exemplos
>Exemplo com continue
var i, j;
loop1: for (i = 0; i < 3; i++) {
//O primeiro 'for' é etiquetado com "loop1"
loop2: for (j = 0; j < 3; j++) {
//O segundo é etiquetado com "loop2"
if (i == 1 && j == 1) {
continue loop1;
} else {
console.log("i = " + i + ", j = " + j);
}
}
}
// Sua saÃda é:
// "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"
// Note como pula-se "i = 1, j = 1" e "i = 1, j = 2"
Exemplo 2 (continue)
Dado uma lista de itens e outra de testes, este exemplo conta o número de Ãtens que passam em todos os testes.
var itemsPassed = 0;
var i, j;
top: for (i = 0; i < items.length; i++) {
for (j = 0; j < tests.length; j++) if (!tests[j].pass(items[i])) continue top;
itemsPassed++;
}
Exemplo 3 (break)
Dado uma lista de Ãtens e uma lista de testes, neste exemplo determina-se se todos os Ãtens passam em todos os testes.
var allPass = true;
var i, j;
top: for (i = 0; items.length; i++)
for (j = 0; j < tests.length; i++)
if (!tests[j].pass(items[i])) {
allPass = false;
break top;
}