Heim > Web-Frontend > js-Tutorial > Wie können Sie Switch-Anweisungen für Größer-als-/Kleiner-als-Vergleiche in JavaScript verwenden?

Wie können Sie Switch-Anweisungen für Größer-als-/Kleiner-als-Vergleiche in JavaScript verwenden?

Linda Hamilton
Freigeben: 2024-10-28 03:11:31
Original
300 Leute haben es durchsucht

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

Switch-Anweisungen für Größer-als/Kleiner-als-Vergleiche

Problem:

Verwendung von Switch-Anweisungen mit Größer-als und Kleiner-als-Operatoren sind in der JavaScript-Syntax nicht möglich. Dies stellt eine Herausforderung dar, wenn Bereichsvergleiche effizient durchgeführt werden müssen.

Lösung:

Obwohl es verschiedene Ansätze zur Lösung dieses Problems gibt, variiert die effizienteste Lösung je nach spezifischer Anwendungsfall und Browserumgebung. Hier sind mehrere getestete Optionen:

if-immediate (Sofortige bedingte Anweisungen):

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

Diese Methode verwendet verschachtelte if-Anweisungen für direkte Vergleiche, was zu einer hervorragenden Leistung führt .

switch-immediate (Sofortige Switch-Case-Anweisungen):

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

Obwohl es einer switch-Anweisung ähnelt, verwendet es intern if-Anweisungen, wodurch es vergleichbar ist mit der if-immediate-Ansatz.

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

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

Dieser Ansatz erweitert die switch-immediate-Methode um die Handhabung Reichweitenvergleiche. Allerdings kann es aufgrund eines möglichen Überlaufs und Leistungseinbußen Auswirkungen auf die Leistung haben.

switch-range2 (Bereichsanpassung mithilfe von Variablen):

<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>
Nach dem Login kopieren

Diese Methode verwendet eine Array von Bereichen, um die Vergleiche durchzuführen. Es bietet ein Gleichgewicht zwischen Leistung und Flexibilität.

Benchmarking-Ergebnisse:

Vergleich der Browserleistung:

  • if -immediate: Beste Leistung in allen Browsern
  • switch-immediate: Vergleichbar mit if-immediate
  • switch-range: Langsamer als if-immediate und switch-immediate
  • switch-range2 : Etwas schneller als switch-range
  • switch-indirect-array: Langsamste Leistung mit Arrays

Empfehlungen:

Für maximale Leistung Verwenden Sie if-immediate. Wenn die Leistung kein entscheidender Faktor ist, können switch-immediate oder switch-range2 alternative Optionen sein, die den Komfort von switch-Anweisungen bieten. Vermeiden Sie die Verwendung von switch-indirect-array oder array-binary-switch aufgrund ihrer Leistungseinbußen.

Das obige ist der detaillierte Inhalt vonWie können Sie Switch-Anweisungen für Größer-als-/Kleiner-als-Vergleiche in JavaScript verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage