Heim > Web-Frontend > js-Tutorial > Können Sie Ausdrücke in JavaScript-Switch-Case-Anweisungen verwenden?

Können Sie Ausdrücke in JavaScript-Switch-Case-Anweisungen verwenden?

Barbara Streisand
Freigeben: 2024-11-02 21:46:30
Original
1047 Leute haben es durchsucht

Can You Use Expressions in JavaScript Switch Case Statements?

Auswertung von Ausdrücken in Switch-Case-Anweisungen

In JavaScript erleichtern Switch-Anweisungen die bedingte Ausführung basierend auf der Gleichheit eines Werts mit vorgegebenen Konstanten. Was aber, wenn Sie stattdessen dynamische Ausdrücke nutzen möchten, die zur Laufzeit ausgewertet werden?

Der bereitgestellte Codeausschnitt versucht, Ausdrücke in Switch-Fällen zu verwenden:

<code class="javascript">function reward(amount) {
    var $reward = $("#reward");
    switch (amount) {
        case (amount >= 7500 && amount < 10000):
            $reward.text("Play Station 3");
            break;
        case (amount >= 10000 && amount < 15000):
            $reward.text("XBOX 360");
            break;
        case (amount >= 15000):
            $reward.text("iMac");
            break;
        default:
            $reward.text("No reward");
            break;
    }
}</code>
Nach dem Login kopieren

Leider funktioniert dieser Ansatz nicht wie erwartet. Der Grund liegt in der Art der switch-Anweisung. Jeder case-Ausdruck gibt einen booleschen Wert zurück, der angibt, ob die Bedingung wahr oder falsch ist. Im angegebenen Code werden die Ausdrücke als wahr oder falsch ausgewertet, nicht als die gewünschten konstanten Werte.

Um dieses Problem zu beheben, kann man einen Trick anwenden, bei dem die Switch-Anweisung einen konstanten booleschen Wert (in diesem Fall wahr) auswertet case) und verwendet Ausdrücke in case-Anweisungen, um den Ausführungsfluss zu steuern:

<code class="javascript">switch (true) {
  case (amount >= 7500 && amount < 10000):
    // Code
    break;
  case (amount >= 10000 && amount < 15000):
    // Code
    break;
  // etc.
}</code>
Nach dem Login kopieren

Diese Problemumgehung ermöglicht die Auswertung von Ausdrücken in switch-Fällen, bringt jedoch einige potenzielle Nachteile mit sich. Erstens ist eine ständige Bewertung auf „wahr“ erforderlich, was in manchen Szenarien unnötig oder unerwünscht sein kann. Zweitens wird der Code weniger prägnant und möglicherweise verwirrender.

Ein alternativer Ansatz besteht darin, if-else-Anweisungen zu verwenden, die eine einfachere Möglichkeit zur Auswertung dynamischer Ausdrücke und zur Ausführung entsprechender Codeblöcke bieten. Die Wahl zwischen der Verwendung einer Switch-Anweisung mit Umgehungslösung oder von if-else-Anweisungen hängt von den spezifischen Anforderungen der Anwendung ab.

Das obige ist der detaillierte Inhalt vonKönnen Sie Ausdrücke in JavaScript-Switch-Case-Anweisungen 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