Sentencia switch ECMAScript

La sentencia switch

La sentencia switch es un hermano de la sentencia if.

Los desarrolladores pueden proporcionar una serie de casos (case) a una expresión utilizando la sentencia switch.

La sintaxis de la sentencia switch:

switch (expression)
  case value: statement;
    break;
  case value: statement;
    break;
  case value: statement;
    break;
  case value: statement;
    break;
...
  case value: statement;
    break;
  default: statement;

Cada caso (case) representa un "si" expression igual a value,ejecuta statement

La palabra clave break hace que el código salga de la declaración switch. Si no hay una palabra clave break, el código continuará ejecutándose en el siguiente caso.

La palabra clave default indica la acción a tomar cuando el resultado de la expresión no coincide con ninguno de los casos (de hecho, es equivalente a la cláusula else).

La declaración switch se utiliza principalmente para evitar que los desarrolladores escriban el siguiente código:

if (i == 20)
  alert("20");
else if (i == 30)
  alert("30");
else if (i == 40)
  alert("40");
else
  alert("other");

La declaración switch equivalente es:

switch (i) {
  case 20: alert("20");
    break;
  case 30: alert("30");
    break;
  case 40: alert("40");
    break;
  default: alert("other");
}

Declaración switch en ECMAScript y Java

Hay dos diferencias entre la declaración switch en ECMAScript y Java. En ECMAScript, la declaración switch se puede usar para cadenas y puede usar valores que no son constantes para definir casos:

var BLUE = "blue", RED = "red", GREEN = "green";
switch (sColor) {
  case BLUE: alert("Blue");
    break;
  case RED: alert("Red");
    break;
  case GREEN: alert("Green");
    break;
  default: alert("Other");
}

Aquí, la declaración switch se utiliza para la cadena sColor, la declaración case utiliza las variables BLUE, RED y GREEN, lo cual es completamente válido en ECMAScript.