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!