Heim > Web-Frontend > js-Tutorial > Warum funktionieren Ausdrücke in Switch-Case-Anweisungen in JavaScript nicht wie erwartet?

Warum funktionieren Ausdrücke in Switch-Case-Anweisungen in JavaScript nicht wie erwartet?

DDD
Freigeben: 2024-10-30 07:35:27
Original
313 Leute haben es durchsucht

Why Do Expressions in Switch Case Statements Not Work as Expected in JavaScript?

Ausdrucksauswertung in Switch-Case-Anweisungen

In JavaScript wertet die Switch-Anweisung einen einzelnen Ausdruck anhand einer Reihe konstanter Ausdrücke aus. Der Versuch, Ausdrücke innerhalb der Case-Klauseln zu verwenden, kann jedoch zu unerwartetem Verhalten führen, wie im bereitgestellten Codeausschnitt gezeigt.

Das Ziel besteht darin, eine Switch-Anweisung zu verwenden, um eine Belohnung basierend auf dem Wert der Betragsvariablen zu bestimmen . Es wird versucht, einen Ausdruck auszuwerten, wie in den case-Klauseln zu sehen ist:

<code class="javascript">case (amount >= 7500 && amount < 10000):
// ...
case (amount >= 10000 && amount < 15000):
// ...
Nach dem Login kopieren

Leider werden diese Ausdrücke als boolesche Werte (wahr oder falsch) ausgewertet, anstatt mit den numerischen Werten von amount abzugleichen. Daher wird die switch-Anweisung niemals in einen der Fälle eintreten.

Um dieses Problem zu beheben, besteht eine mögliche Lösung darin, den wahren Ausdruck als Fallwert zu verwenden und den Ausdruck innerhalb der Fallklausel wie folgt auszuwerten :

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

Dieser Ansatz funktioniert, weil der Case-Wert jetzt der boolesche Wert true ist und der Ausdruck in der Case-Klausel einen booleschen Wert ergibt.

Das obige ist der detaillierte Inhalt vonWarum funktionieren Ausdrücke in Switch-Case-Anweisungen in JavaScript nicht wie erwartet?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage