JavaScript Cambiar la declaración


Ejemplo

Las instrucciones de conmutación comparan el valor de una expresión con 1 o más valores y ejecutan diferentes secciones de código basadas en esa comparación.

var value = 1;
switch (value) {
  case 1:
    console.log('I will always run');
    break;
  case 2:
    console.log('I will never run');
    break;
}

La instrucción break "rompe" fuera de la instrucción switch y garantiza que no se ejecute más código dentro de la instrucción switch. Así es como se definen las secciones y le permite al usuario hacer casos de "caída".

Advertencia : la falta de una declaración de break o return para cada caso significa que el programa continuará evaluando el próximo caso, ¡incluso si el criterio del caso no se cumple!

switch (value) {
  case 1:
    console.log('I will only run if value === 1');
    // Here, the code "falls through" and will run the code under case 2
  case 2:
    console.log('I will run if value === 1 or value === 2');
    break;
  case 3:
    console.log('I will only run if value === 3');
    break;
}

El último caso es el caso por default . Éste se ejecutará si no se hicieron otros partidos.

var animal = 'Lion';
switch (animal) {
  case 'Dog':
    console.log('I will not run since animal !== "Dog"');
    break;
  case 'Cat':
    console.log('I will not run since animal !== "Cat"');
    break;
  default:
    console.log('I will run since animal does not match any other case');
}

Cabe señalar que una expresión de caso puede ser cualquier tipo de expresión. Esto significa que puede usar comparaciones, llamadas a funciones, etc. como valores de caso.

function john() {
  return 'John';
}

function jacob() {
  return 'Jacob';
}

switch (name) {
  case john(): // Compare name with the return value of john() (name == "John")
    console.log('I will run if name === "John"');
    break;
  case 'Ja' + 'ne': // Concatenate the strings together then compare (name == "Jane")
    console.log('I will run if name === "Jane"');
    break;
  case john() + ' ' + jacob() + ' Jingleheimer Schmidt':
    console.log('His name is equal to name too!');
    break;
}

Criterios de inclusión múltiple para casos

Ya que los casos "no llegan" sin una declaración de break o return , puede usar esto para crear múltiples criterios inclusivos:

var x = "c"
switch (x) {
   case "a":
   case "b":
   case "c":
      console.log("Either a, b, or c was selected.");
      break;
   case "d":
      console.log("Only d was selected.");
      break;
   default:
      console.log("No case was matched.");
      break;  // precautionary break if case order changes
}