2012-06-02 20 views

Respuesta

38

Las cadenas se comparan carácter por carácter hasta que no son iguales o no quedan caracteres para comparar. El primer caracter de '11' es menor que el primer caracter de '3'.

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

Si usamos letras a continuación, ya que b no es menor que a, abc no es menor que aaa, pero desde c es menor que d, abc es menor que abd.

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

Sí. La comparación de cadenas se hace principalmente alfabéticamente. – jpaugh

+0

Solo una nota rápida: preste atención a las minúsculas y mayúsculas. Las mayúsculas aparecen antes que las minúsculas. Ej: ''abc '<' Abd '// false' – viery365

2

'1' < '3' y (no es que este término tiene algún sentido) desde el primer carácter es el "carácter más significativo". Los siguientes personajes ya no se compararán.

+0

Supongo que OP podría no saber ASCII. Por lo tanto, creo que puede ser útil si se incluye una lista ordenada de caracteres. Aquí está: [ASCII] (http://en.wikipedia.org/wiki/ASCII). – Haozhun

3

En él se compara por cada personaje, lo siguiente será false:

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

Desde 4 no sea inferior a 3. Entonces, esencialmente, su comparación se reduce a esto:

if ('1' < '3') alert('true'); // true 
2

De forma predeterminada, JavaScript comparará dos cadenas por el valor ordinal de cada carácter; muy similar a cómo strcmp() obras en C

Para hacer su trabajo de comparación, puede convertir cualquier lado a una serie de decirle al intérprete de sus intenciones de comparación numérica:

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

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

Se ha tratado como una comparación de cadenas. Por lo tanto, 1 < 3 (1er carácter de dos cadenas) luego el texto 11 anterior al texto de la cadena 3