2016-07-21 13 views

Antwort

2

Dieser berechnet wird The Abstract Relational Comparison Algorithm in ECMA-5 sehen. Der relevante Teil ist unten zitiert.

4. Else, both px and py are Strings 
    a) If py is a prefix of px, return false. (A String value p is a prefix 
     of String value q if q can be the result of concatenating p and some 
     other String r. Note that any String is a prefix of itself, because 
     r may be the empty String.) 
    b) If px is a prefix of py, return true. 
    c) Let k be the smallest nonnegative integer such that the character 
     at position k within px is different from the character at position 
     k within py. (There must be such a k, for neither String is a prefix 
     of the other.) 
    d) Let m be the integer that is the code unit value for the character 
     at position k within px. 
    e) Let n be the integer that is the code unit value for the character 
     at position k within py. 
    f) If m < n, return true. Otherwise, return false. 
0

Strings Zeichen für Zeichen verglichen werden, so ist der erste Buchstabe der bedeutendste, daher

'bc' > 'ac' = true/false ? => true 
'ac' > 'bc' = true/false ? => false 

wenn der erste Buchstabe wird gleich sein, wird der zweite verglichen und so weiter, bis einer von ihnen größer oder kleiner oder gleich wird.

0

Javascript konvertiert das Alphabet in ASCII-Code und vergleicht das erste Zeichen zuerst.

können Sie ascii-Code-Tabelle hier http://www.kerryr.net/pioneers/ascii2.htm

aus Ihrer Frage

'bc' > 'ac' // because b > a 
+0

ASCII ist Unicode? Nein. Wir sind gerade Jahrzehnte in die Zukunft gegangen! – Sebivor

0

Nicht nur in Javascript, Vereinfacht, all String-Vergleich Algorithmus die lexikographische Reihenfolge oder lexikalische Reihenfolge, folgen, was bedeutet es jedes Zeichen für Zeichen wird prüfen, ob einige Fehlpaarungen, können Sie das Ergebnis entscheiden

True: 
ant < any 
aaa < aab 
aab < b 
b < baa 
Verwandte Themen