JavaScript - Duda

 
Vista:
sin imagen de perfil

Duda

Publicado por alej (1 intervención) el 05/10/2022 09:50:18
Hola, alguien me ayuda? me estanque con esto... no entiendo por que se cumple:

1
2
3
4
var rangemax="11587";
var rangemin="50";
 
if (rangemax < rangemin) { alert(); }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Duda

Publicado por antonio (16 intervenciones) el 05/10/2022 11:16:47
Las variables la estas poniendo como string y el rangemax no es menor que el rangemin bpor lo que la condición no se cumple:

1
2
3
4
5
6
7
8
9
10
<script>
    var rangemax=11587;
    var rangemin=50;
 
    if (rangemax > rangemin) {
            alert();
 
    }
 
</script>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Gio
Val: 368
Bronce
Ha aumentado 1 puesto en JavaScript (en relación al último mes)
Gráfica de JavaScript

Duda

Publicado por Gio (79 intervenciones) el 20/10/2022 03:51:48
Hola, lo que estás haciendo tiene una explicación muy rebuscada.

Esa condición se cumple porque no estás comparando datos numéricos (estos datos no se expresan dentro de comillas), estás comparando dígitos y aquí la lógica de comparación es distinta.

Lo que ocurre es lo siguiente, a cada dígito le corresponde un valor numérico basado en el código ASCII (https://elcodigoascii.com.ar/). Por ejemplo la letra "A" en mayúsculas corresponde al número 65 y la letra "a" en minúsculas corresponde al valor 97, por lo que "a"(97) será mayor que "A"(65). Esto es así porque las primeras computadoras permitían escribir en letras mayúsculas y luego decidieron incluir a las letras minúsculas, ocupando números mas grandes en la tabla ASCII.


Entendiendo lo anterior, debemos intercambiar cada dígito por su número ASCII correspondiente, por ejemplo:
comparacion-de-digitos-1

Luego el programa toma partes iguales, basándose en la cadena de texto mas pequeña.
comparacion-de-digitos-2

Se empieza a comparar los numeros de arriba a abajo hasta encontrar el primer mayor, definiendo cual de los textos es mayor:
comparacion-de-digitos-3

Como puedes ver, el texto "50" terminó siendo mayor que "11587" en el primer dígito.


Pongamos otro ejemplo, compararemos "24458" con "245" para ver cual es mayor:
comparacion-de-digitos-4


Por último, pongamos el ejemplo de que los dígitos comparados son todos iguales. Trabajaremos con los textos "88725" y "887":
comparacion-de-digitos-5

Si te fijas, los dígitos comparados eran todos iguales pero los dígitos sobrantes hicieron el desempate, haciendo que el texto que los posee sea considerado como el mayor.


En resumen: No es lo mismo 123 (número) que "123" (texto). La lógica de comparación son distintas.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar