Heim  >  Artikel  >  Web-Frontend  >  Warum werden die JavaScript-Zeichenfolgen „11“ und „3“ im lexikografischen Vergleich als wahr angesehen?

Warum werden die JavaScript-Zeichenfolgen „11“ und „3“ im lexikografischen Vergleich als wahr angesehen?

Linda Hamilton
Linda HamiltonOriginal
2024-10-18 12:36:03820Durchsuche

Why Do JavaScript Strings

Lexikografischer Vergleich von Zeichenfolgen

Der Vergleich zwischen den Zeichenfolgen „11“ und „3“ im angegebenen Codeausschnitt weckt aufgrund der unerwartetes Ergebnis von true. Eine triviale Annahme könnte sein, dass der Vergleich auf der Länge der Zeichenfolgen basiert, aber das ist nicht der Fall. Stattdessen werden JavaScript-Zeichenfolgen lexikographisch verglichen.

Beim lexikografischen Vergleich werden die Sequenzen von Unicode-Codepunkten verglichen, die die Zeichen in den Zeichenfolgen darstellen. Es beginnt mit dem Vergleich des ersten Zeichens jeder Zeichenfolge. Wenn diese Zeichen gleich sind, werden die zweiten Zeichen verglichen und so weiter. Der Vergleich wird beendet, wenn Zeichen mit unterschiedlichen Codepunkten gefunden werden oder wenn in einer der Zeichenfolgen keine Zeichen mehr vorhanden sind.

Im Fall von „11“ und „3“ sind die ersten Zeichen „1“ und „3“. '. Da „1“ einen niedrigeren Unicode-Codepunkt als „3“ hat, ist „11“ laut lexikografischem Vergleich kleiner als „3“. Dies erklärt das überraschende Ergebnis: Eine längere Zeichenfolge wird als kürzer betrachtet als eine kürzere Zeichenfolge, da sie ein Zeichen mit einem niedrigeren Codepunkt enthält.

Beispiele:

'11' < '3' // true
'31' < '3' // false
'31' < '32' // true
'31' < '30' // false
'abc' < 'aaa' // false
'abc' < 'abd' // true

Um eine Zeichenfolge explizit in zu konvertieren eine Zahl, verwenden Sie den unären Plus-Operator ( ):

 +'11' < '3' // false

Das obige ist der detaillierte Inhalt vonWarum werden die JavaScript-Zeichenfolgen „11“ und „3“ im lexikografischen Vergleich als wahr angesehen?. 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