Heim > Web-Frontend > js-Tutorial > Warum wird „11' in JavaScript mit weniger als „3' verglichen?

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

Mary-Kate Olsen
Freigeben: 2024-10-18 12:58:02
Original
1089 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php
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