Maison  >  Article  >  interface Web  >  Comment pouvez-vous utiliser les instructions Switch pour des comparaisons supérieur/inférieur à en JavaScript ?

Comment pouvez-vous utiliser les instructions Switch pour des comparaisons supérieur/inférieur à en JavaScript ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-28 03:11:31274parcourir

How Can You Use Switch Statements for Greater-than/Less-than Comparisons in JavaScript?

Instructions Switch pour des comparaisons supérieures/inférieures à

Problème :

Utilisation d'instructions switch avec une valeur supérieure à et les opérateurs inférieur à ne sont pas possibles dans la syntaxe JavaScript. Cela pose un défi lorsqu'il faut effectuer des comparaisons de plages de manière efficace.

Solution :

Bien qu'il existe différentes approches pour résoudre ce problème, la solution la plus efficace varie en fonction du cas d'utilisation spécifique et environnement de navigateur. Voici plusieurs options testées :

if-immediate (instructions conditionnelles immédiates) :

<code class="javascript">if (scrollLeft < 1000) {
  // do stuff
} else if (scrollLeft > 1000 && scrollLeft < 2000) {
  // do other stuff
}

Cette méthode utilise des instructions if imbriquées pour des comparaisons directes, ce qui donne d'excellentes performances .

switch-immediate (Instructions Immediate Switch-Case) :

<code class="javascript">switch (true) {
  case scrollLeft < 1000:
    // do stuff
    break;
  case scrollLeft > 1000 && scrollLeft < 2000:
    // do other stuff
    break;
}

Bien qu'elle ressemble à une instruction switch, elle utilise en interne des instructions if, ce qui la rend comparable à l'approche if-immediate.

switch-range (Range Matching in Switch-Case Statements) :

<code class="javascript">switch (true) {
  case scrollLeft >= 0 && scrollLeft < 1000: // not recommended
  case scrollLeft >= 1000 && scrollLeft < 2000:
    // do stuff
    break;
}

Cette approche étend la méthode switch-immediate pour gérer comparaisons de gammes. Cependant, cela peut avoir des implications sur les performances en raison d'un débordement potentiel et de pénalités de performances.

switch-range2 (Range Matching Using Variables) :

<code class="javascript">const range1 = [0, 1000];
const range2 = [1000, 2000];
switch (true) {
  case scrollLeft >= range1[0] && scrollLeft < range1[1]:
  case scrollLeft >= range2[0] && scrollLeft < range2[1]:
    // do stuff
    break;
}</code>

Cette méthode utilise un tableau de plages pour effectuer les comparaisons. Il offre un équilibre entre performances et flexibilité.

Résultats de l'analyse comparative :

Comparaison des performances du navigateur :

  • if -immediate : meilleures performances sur tous les navigateurs
  • switch-immediate : comparable à if-immediate
  • switch-range : plus lent que if-immediate et switch-immediate
  • switch-range2 : Légèrement plus rapide que switch-range
  • switch-indirect-array : performances les plus lentes impliquant des baies

Recommandations :

Pour des performances maximales, utilisez if-immediate. Si les performances ne sont pas une préoccupation critique, switch-immediate ou switch-range2 peuvent être des options alternatives offrant la commodité des instructions switch. Évitez d'utiliser switch-indirect-array ou array-binary-switch en raison de leurs pénalités de performances.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn