2012-06-02 7 views

Antwort

38

Zeichenketten werden Zeichen für Zeichen verglichen, bis sie nicht gleich sind oder es keine Zeichen mehr zum Vergleichen gibt. Das erste Zeichen von '11' ist kleiner als das erste Zeichen von '3'.

> '11' < '3' 
true 
> '31' < '3' 
false 
> '31' < '32' 
true 
> '31' < '30' 
false 

Wenn wir Buchstaben verwenden dann, da b nicht weniger als a, abc als aaa nicht weniger, aber da c weniger als d, abc weniger als abd.

> 'abc' < 'aaa' 
false 
> 'abc' < 'abd' 
true 
+0

Ja. Der Stringvergleich erfolgt meist alphabetisch. – jpaugh

+0

Nur eine kurze Anmerkung: Achten Sie auf die Klein- und Großbuchstaben. Großbuchstaben kommen vor Kleinbuchstaben. Bsp: '' abc '<' Abd '// false' – viery365

2

'1' < '3' und da das erste Zeichen ist die „bedeutendsten Zeichen“ (nicht, dass dieser Begriff keinen Sinn macht). Nachfolgende Zeichen werden nicht mehr verglichen.

+0

Ich vermute, OP könnte ASCII nicht kennen. Daher glaube ich, dass es hilfreich sein kann, wenn eine sortierte Liste von Zeichen enthalten ist. Hier ist es: [ASCII] (http://en.wikipedia.org/wiki/ASCII). – Haozhun

3

Es wird von jedem Zeichen vergleicht, wird die folgende false sein:

if ('41' < '3') alert('true'); 

Da 4 nicht weniger als 3. Also im Wesentlichen Ihr Vergleich auf diese Weise gekocht:

2

Standardmäßig wird JavaScript zwei Strings von jedem Zeichen Ordnungszahl vergleichen; viel wie, wie strcmp() Werke in C.

Um Ihren Vergleich Arbeit zu machen, Sie zu beiden Seiten auf eine Reihe werfen können dem Dolmetscher Ihre Absichten von numerischem Vergleich zu sagen:

Number('11') < '3' // false 
+'11' < '3' // false, using + to coerce '11' to a numeric 

'11' < Number('3') // false 
'11' < +'3' // false 
0

Es wurde als String-Vergleich behandelt. So 1 < 3 (1. Zeichen von zwei Strings) dann String 11 vor String 3

Verwandte Themen