JavaScript Déclaration de changement


Exemple

Les instructions de commutateur comparent la valeur d'une expression à une ou plusieurs valeurs et exécutent différentes sections de code en fonction de cette comparaison.

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

L'instruction break "se casse" de l'instruction switch et garantit qu'aucun autre code dans l'instruction switch n'est exécuté. C’est ainsi que les sections sont définies et permet à l’utilisateur de faire des cas de «chute».

Attention : l'absence de déclaration de return ou de break pour chaque cas signifie que le programme continuera à évaluer le cas suivant, même si le critère de cas n'est pas satisfait!

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;
}

Le dernier cas est le cas default . Celui-ci fonctionnera si aucun autre match n'a été effectué.

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');
}

Il convient de noter qu'une expression de cas peut être toute sorte d'expression. Cela signifie que vous pouvez utiliser des comparaisons, des appels de fonction, etc. comme valeurs de cas.

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;
}

Critères d'inclusion multiples pour les cas

Étant donné que les requêtes "tombent" sans déclaration de return ou de break , vous pouvez l'utiliser pour créer plusieurs critères inclus:

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
}