Verstehen des lexikografischen Zeichenfolgenvergleichs: Warum ist „11“ kleiner als „3“?
In JavaScript werden Zeichenfolgen lexikographisch verglichen, d. h. Zeichen nach Zeichen, bis eine Nichtübereinstimmung festgestellt wird oder eine Zeichenfolge endet. Dieses Verhalten kann beim Vergleich von Zeichenfolgen, die Zahlen darstellen, zu unerwarteten Ergebnissen führen.
Lexikografischer Vergleich in Aktion
Beachten Sie den folgenden Code:
<code class="javascript">if ('11' < '3') alert('true');</code>
Dieser Code ergibt „true“, da das erste Zeichen von „11“ („1“) lexikographisch kleiner ist als das erste Zeichen von „3“ („3“). Mit anderen Worten: JavaScript vergleicht Zeichenfolgen als Zeichenfolgen und nicht als Zahlen.
Zeichencode-Äquivalenz
Die lexikografische Reihenfolge der Zeichen basiert auf ihren Unicode-Zeichencodes. Der Unicode-Zeichencode für „1“ ist 49, während der Code für „3“ 51 ist. Da 49 kleiner als 51 ist, steht „1“ in der Zeichenfolge vor „3“.
Beispielszenarien
Explizite numerische Konvertierung
Um Zeichenfolgen als Zahlen zu vergleichen, können sie explizit mit dem Operator:
<code class="javascript">+'11' < '3': False</code>
Das obige ist der detaillierte Inhalt vonWarum führt der lexikografische Zeichenfolgenvergleich von JavaScript dazu, dass „11' kleiner als „3' ist?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!