type sirve script que para historia funciona definicion como caracteristicas javascript loops label nested-loops break

sirve - que es javascript pdf



¿Usar etiquetas en JavaScript es una mala práctica? (4)

Me acabo de enterar sobre el uso de etiquetas en JavaScript, como por ejemplo:

for (var i in team) { if(i === "something") { break doThis: //Goto the label } else { doThat(); } } doThis: //Label doIt();

No he oído hablar de esto hasta ahora y no puedo encontrar mucha información en línea al respecto y estoy empezando a pensar que hay una razón para eso.

Me parece que esto es similar a una declaración GOTO en otros idiomas y se consideraría una mala práctica. ¿Tendría razón al asumir esto?



Esos son identificadores de interruptores de lazo. Son útiles si tiene bucles anidados (bucles dentro de bucles) y si utiliza estos identificadores, puede especificar de manera condicional cuándo y de qué bucle partir.


Las etiquetas en JavaScript se usan principalmente con break, o continúan en bucles anidados para poder romper el exterior, o continúan el bucle externo desde el código dentro del bucle interno:

outer: for (let i = 0; i < 10; i++) { let k = 5; for (let j = 0; j < 10; j++) // inner loop if (j > 5) break; // inner else continue outer; // it will go to next iteration of outer loop }

Si utilizó continue sin la etiqueta ''outer'', iría a la siguiente iteración del ciclo interno. Es por eso que hay una necesidad de etiquetas en Javascript.


roturas etiquetadas pueden romperse de cualquier bloque de código, no solo de bucles

<p id="test1"></p> <p id="test2"></p> <p id="test3"></p> <p id="test4"></p> <p id="test5"></p> test: { document.getElementById(''test1'').innerHTML = "test 1 passed"; document.getElementById(''test2'').innerHTML = "test 2 passed"; document.getElementById(''test3'').innerHTML = "test 3 passed"; break test; document.getElementById(''test4'').innerHTML = "test 4 passed"; document.getElementById(''test5'').innerHTML = "test 5 passed"; }

resultado:

prueba 1 aprobada

prueba 2 aprobada

prueba 3 aprobada