if ('11' < '3') alert('true');
Es obvio que no los está comparando por longitud sino por codificación. Sin embargo, no entiendo cómo funciona. Necesito alguna explicación :-)¿Por qué la cuerda "11" es menor que la cuerda "3"?
if ('11' < '3') alert('true');
Es obvio que no los está comparando por longitud sino por codificación. Sin embargo, no entiendo cómo funciona. Necesito alguna explicación :-)¿Por qué la cuerda "11" es menor que la cuerda "3"?
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
'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.
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
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
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
En muchos lenguajes de programación Las cadenas se comparan como lexicographically. Puede marcar Alphabetical order
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
Sí. La comparación de cadenas se hace principalmente alfabéticamente. – jpaugh
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