script resumen para lista lenguaje etiquetas estructura ejemplos con codigos basicas javascript switch-statement fall-through

javascript - resumen - Prueba de mĂșltiples casos en un interruptor, como un O(||)



lista de etiquetas javascript (6)

¡Tienes que cambiarlo!

switch (true) { case ( (pageid === "listing-page") || (pageid === ("home-page") ): alert("hello"); break; case (pageid === "details-page"): alert("goodbye"); break; }

¿Cómo usaría una case switch cuando necesitara probar aob en el mismo caso?

switch (pageid) { case "listing-page" || "home-page": alert("hello"); break; case "details-page": alert("goodbye"); break; }


Dado que las otras respuestas explicaron cómo hacerlo sin explicar realmente por qué funciona:

Cuando el switch ejecuta, encuentra la primera sentencia de case coincidente y luego ejecuta cada línea de código después del cambio hasta que golpea una declaración de break o el final del switch (o una declaración de return para dejar toda la función contenedora). Cuando deliberadamente omites el break para que se ejecute el código del próximo case eso se conoce como un break . Entonces para el requisito de OP:

switch (pageid) { case "listing-page": case "home-page": alert("hello"); break; case "details-page": alert("goodbye"); break; }

Olvidar incluir declaraciones de break es un error de codificación bastante común y es lo primero que debe buscar si su switch no funciona de la manera que esperaba. Por esa razón, a algunas personas les gusta hacer un comentario para decir "fallido" para dejarlo en claro cuando las declaraciones de interrupción se han omitido a propósito. Lo hago en el siguiente ejemplo, ya que es un poco más complicado y muestra cómo algunos casos pueden incluir código para ejecutar antes de que fallen:

switch (someVar) { case 1: someFunction(); alert("It was 1"); // fall through case 2: alert("The 2 case"); // fall through case 3: // fall through case 4: // fall through case 5: alert("The 5 case"); // fall through case 6: alert("The 6 case"); break; case 7: alert("Something else"); break; case 8: // fall through default: alert("The end"); break; }

También puede (opcionalmente) incluir un caso default , que se ejecutará si ninguno de los otros casos coincide - si no incluye una coincidencia default y ninguna coincidencia de casos, entonces no ocurre nada. Usted puede (opcionalmente) caer en el caso predeterminado.

Así que en mi segundo ejemplo si someVar es 1, llamaría a someFunction() y luego vería cuatro alertas, ya que se trata de casos múltiples, algunos de los cuales tienen alertas debajo de ellos. Si someVar es 3, 4 o 5, verá dos alertas. Si someVar tiene 7 años, verá "Something else" y si tiene 8 o cualquier otro valor, verá "The end".


Necesitas hacer dos etiquetas de case .

El control pasará de la primera etiqueta a la segunda, por lo que ambos ejecutarán el mismo código.


Olvídate de switch y break , juguemos con if . Y en lugar de afirmar

if(pageid === "listing-page" || pageid === "home-page")

permite crear varias matrices con casos y verificarlo con Array.prototype.includes()

var caseA = ["listing-page", "home-page"]; var caseB = ["details-page", "case04", "case05"]; if(caseA.includes(pageid)) { alert("hello"); } else if (caseB.includes(pageid)) { alert("goodbye"); } else { alert("there is no else case"); }


Puede usar Fall-through:

switch (pageid) { case "listing-page": case "home-page": alert("hello"); break; case "details-page": alert("goodbye"); break; }


Usa comas para separar el caso

switch (pageid) { case "listing-page","home-page": alert("hello"); break; case "details-page": alert("goodbye"); break; }