una tratar soberbia pulmon prepotentes prepotente prepotencia personas persona mujer laboral frases espalda dolor como caracteristicas cancer arrogantes javascript string comparison

javascript - tratar - prepotencia frases



¿Por qué la cuerda "11" es menor que la cuerda "3"? (6)

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

Es obvio que no los compara por longitud sino por codificación. Sin embargo, no entiendo cómo funciona. Necesito alguna explicación :-)



Ha sido tratado como una comparación de cadenas. Entonces 1 <3 (1er carácter de dos cadenas), luego el texto 11 anterior al texto 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 entonces, dado que b no es menor que a , abc no es menor que aaa , pero como c es menor que d , abc es menor que abd .

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


Por defecto, JavaScript comparará dos cadenas por el valor ordinal de cada carácter; al igual que strcmp() funciona en C.

Para hacer que su comparación funcione, puede convertir cualquier lado en un número para decirle al intérprete 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


Se compara por cada personaje, lo siguiente será false :

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

Como 4 no es menos de 3 . Entonces, esencialmente, su comparación se reduce a esto:

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


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