Contenido del curso

Introducción a JavaScript

Estructuras de Control y Lógica

Manipulación de Arrays

Programación Orientada a Objetos

Asincronía en JavaScript

Cómo funciona switch en JavaScript

Resumen

La estructura switch en JavaScript te permite evaluar una misma variable contra varios escenarios posibles y ejecutar el bloque de código que coincida. Es ideal cuando tienes muchas opciones discretas que validar, como buscar un producto en una tienda o filtrar respuestas según una categoría.

¿Qué es switch en JavaScript y cuándo conviene usarlo?

A diferencia de if y else if, donde puedes comparar con mayor que, menor que o distinto de, switch solo evalúa una expresión contra valores específicos y ejecuta el caso que coincida [00:13]. Piensa en switch como una lista de escenarios cerrados: si tu expresión es igual a uno de ellos, ese bloque se ejecuta; si no, entra el bloque por defecto.

¿Cuándo usar switch en lugar de if else? Cuando tienes múltiples valores fijos a comparar contra una misma variable. Si solo necesitas dos o tres condiciones con operadores como mayor o menor, if else es más claro.

¿Cómo se escribe la estructura básica de un switch?

La sintaxis tiene tres partes esenciales: la expresión a evaluar, los case con sus valores, y el default como salida final [01:20].

  • switch (expresión): abres paréntesis y dentro pones la variable o valor que quieres validar.
  • case valor:: cada caso compara la expresión con un valor específico, seguido de dos puntos.
  • break: rompe el ciclo para que no siga evaluando los siguientes casos.
  • default: se ejecuta cuando ninguno de los casos anteriores coincide, funciona como el else del if.

La lógica es secuencial: switch recorre cada case preguntando si la expresión coincide. Si encuentra una coincidencia, ejecuta ese código y el break corta la cadena. Si no coincide ninguno, llega al default.

¿Por qué es importante el break en cada case?

Sin el break, JavaScript seguiría ejecutando los siguientes casos aunque ya hubiera encontrado una coincidencia. El break le dice a switch: ya encontré lo que buscaba, detente aquí. Es la forma de cerrar correctamente un caso y evitar que el código se desborde a otros bloques.

¿Cómo aplicar switch a un ejemplo real con productos de una tienda?

Imagina que entras a un mercado buscando frutas y quieres saber el precio según la fruta que pidas. Esa búsqueda se traduce muy bien a switch [04:00].

Primero declaras tu variable con let expresion = "papayas". Esa es la fruta que estás buscando. Luego, dentro del switch, pasas expresion como la variable a evaluar y abres los casos:

  • case "naranjas": regresa un console.log con "las naranjas cuestan 20 pesos el kilo" y cierra con break.
  • case "manzanas": regresa "las manzanas cuestan 43 pesos el kilo" y cierra con break.
  • case "plátanos": regresa "el plátano está en 30 pesos el kilo" y cierra con break.
  • case "mangos": case "papayas":: comparten el mismo bloque y regresan "los mangos y las papayas cuestan 25 pesos el kilo".
  • default: regresa un mensaje dinámico como "Lo siento, no contamos con " + expresion.

Al ejecutar con expresion = "papayas", la consola devuelve el precio compartido de mangos y papayas. Si cambias la variable a "uvas", que no existe en ningún caso, entra el default y devuelve: "Lo siento, no contamos con uvas. ¿Hay algo más que desees?" [09:30].

¿Cómo agrupar varios case que comparten el mismo código?

Cuando dos o más valores deben ejecutar el mismo bloque, puedes encadenarlos sin repetir código. Solo escribes los case uno tras otro con sus dos puntos y, debajo, el console.log común seguido de un único break. Así evitas duplicar líneas para productos que tienen el mismo precio o respuesta [07:45].

¿Qué pasa si olvido los dos puntos después de un case? JavaScript lanza un error de sintaxis. Los dos puntos son obligatorios para cerrar la declaración del valor antes del bloque de código.

¿Por qué switch usa comparación estricta y qué significa eso?

Un detalle clave que diferencia a switch de if es que internamente usa el operador de comparación estricto, equivalente al triple igual === [10:30]. Esto significa que valida tanto el valor como el tipo de dato.

Si tu expresión es el número 5 y un case tiene el string "5", no van a coincidir, porque uno es número y otro es texto. Por eso switch no admite operadores como mayor que, menor que o distinto: solo verifica igualdad estricta entre la expresión y cada valor.

Esta característica hace que switch sea predecible y rápido para escenarios cerrados, pero te obliga a pensar en los tipos de datos que estás comparando. Si trabajas con entradas de usuario, conviene normalizarlas antes de meterlas al switch.

¿Ya probaste reescribir alguno de tus if else largos como switch? Cuéntame en los comentarios qué caso de uso se te ocurrió primero.