Heim > Artikel > Web-Frontend > Können Sie Ausdrücke in JavaScript-Switch-Case-Anweisungen verwenden?
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!