Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
2
respuestas

Operador de igualdad estricta me confunde

Hola nuevamente a todos. Aún sigo con el juego del número secreto en la clase 3. Me puse a jugar un poco con el código y noté que al cambiar el operador de igualdad [==] por el de igualdad estricta [===], el valor que retorna al comparar es false, siendo que ambos valores son el mismo y del mismo tipo de dato (según yo). ¿Hay alguien aquí que entienda por qué retorna false? Siendo que usando [==] sí retorna true pero eso es de esperarse.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas
solución!

¡Hola Estudiante, espero que estés bien!

Entiendo tu confusión con el operador de igualdad estricta [===]. La diferencia principal entre los operadores de igualdad [==] y de igualdad estricta [===] radica en cómo manejan los tipos de datos.

Cuando usas el operador de igualdad [==], JavaScript intenta convertir los valores para que sean del mismo tipo antes de hacer la comparación. Por otro lado, el operador de igualdad estricta [===] no realiza ninguna conversión de tipos, por lo que compara tanto el valor como el tipo de dato.

Por ejemplo, si tienes un número y una cadena que representan el mismo valor, el operador de igualdad [==] los considerará iguales, pero el operador de igualdad estricta [===] los considerará diferentes debido a sus tipos de datos diferentes.

En tu caso, al usar el operador de igualdad [==], es posible que JavaScript esté convirtiendo los valores para que sean del mismo tipo antes de hacer la comparación, lo que resulta en un valor true. Sin embargo, al usar el operador de igualdad estricta [===], JavaScript compara tanto el valor como el tipo de dato, y al notar que son de tipos diferentes, devuelve false.

Para entender mejor, aquí tienes un ejemplo:

let numero = 10;
let cadena = "10";

console.log(numero == cadena); // true
console.log(numero === cadena); // false

Espero que esto aclare tu confusión. Si necesitas más ayuda, no dudes en preguntar. ¡Buena suerte con tu juego del número secreto! ¡Sigue adelante!

Entonces, ¿un prompt siempre va a devolver un valor tipo cadena?