Comparando valores en JavaScript
Los operadores de comparacion devuelven un valor booleano (true o false).
Operadores de igualdad
// Igualdad estricta (recomendada)
console.log(5 === 5); // true
console.log(5 === "5"); // false (diferente tipo)
console.log(5 !== 3); // true
// Igualdad flexible (evitar)
console.log(5 == "5"); // true (convierte tipos)
console.log(5 != "5"); // false
// Por que evitar == ?
console.log(0 == false); // true (confuso!)
console.log("" == false); // true (confuso!)
console.log(null == undefined); // true
Operadores de relacion
const a = 10;
const b = 5;
console.log(a > b); // true - Mayor que
console.log(a < b); // false - Menor que
console.log(a >= 10); // true - Mayor o igual
console.log(a <= 10); // true - Menor o igual
Comparando strings
// Los strings se comparan alfabeticamente
console.log("a" < "b"); // true
console.log("apple" < "banana"); // true
console.log("A" < "a"); // true (mayusculas primero)
// Comparar ignorando mayusculas
const str1 = "Hola";
const str2 = "hola";
console.log(str1.toLowerCase() === str2.toLowerCase()); // true
Valores especiales
// NaN no es igual a nada, ni a si mismo!
console.log(NaN === NaN); // false
console.log(Number.isNaN(NaN)); // true (forma correcta)
// null y undefined
console.log(null === undefined); // false
console.log(null == undefined); // true
// Infinito
console.log(Infinity > 1000000); // true