Heim  >  Artikel  >  Web-Frontend  >  Warum wird „11“ in JavaScript mit weniger als „3“ verglichen?

Warum wird „11“ in JavaScript mit weniger als „3“ verglichen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-18 12:58:02957Durchsuche

Why Does

Anomalien beim String-Vergleich: Warum „11“ in JavaScript kleiner als „3“ ist

Das Verhalten beim String-Vergleich von JavaScript kann manchmal kontraintuitiv sein. Ein solches Beispiel ist die Ungleichung „11“ < '3', was überraschenderweise true zurückgibt.

In JavaScript werden Zeichenfolgen lexikographisch Zeichen für Zeichen von links nach rechts verglichen. Wenn die Zeichen unterschiedlich sind, basiert der Vergleich auf ihren Unicode-Codepunkten. Der ASCII-Code für „1“ ist 49, während der für „3“ 51 ist. Daher ist das erste Zeichen von „11“ (mit einem Codepunkt von 49) kleiner als das erste Zeichen von „3“ (mit einem Code). Punkt von 51), was zu der Ungleichung '11' < '3'.

Hier sind einige zusätzliche Beispiele, um dieses Verhalten zu veranschaulichen:

  • '31' < '3': falsch (das erste Zeichen von '31' ist größer als das erste Zeichen von '3')
  • '31' < '32': wahr (das erste Zeichen von '31' ist kleiner als das erste Zeichen von '32')
  • '31' < „30“: falsch (das erste Zeichen von „31“ ist größer als das erste Zeichen von „30“)

Es ist wichtig zu beachten, dass für Buchstaben dieselben Vergleichsregeln gelten. Wenn „b“ nicht kleiner als „a“ ist, kann „abc“ nicht kleiner als „aaa“ sein. Allerdings ist „c“ kleiner als „d“, also ist „abc“ kleiner als „abd“.

Um solche Anomalien beim Vergleich von Zeichenfolgen als Zahlen zu vermeiden, wird empfohlen, sie explizit mit dem Operator „ “ zu konvertieren :

<code class="js">+'11' < '3'  // false</code>

Das obige ist der detaillierte Inhalt vonWarum wird „11“ in JavaScript mit weniger als „3“ verglichen?. 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