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
Barbara StreisandOriginal
2024-11-02 21:46:301052Durchsuche

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>

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>

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!

Stellungnahme:
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