¿El ejemplo que dan como respuesta en el desafio mal es incorrecto? o me equivoco, ya que utilizan una igualdad estrita y por ende no registra los sabados y domigos como fin de semana
¿El ejemplo que dan como respuesta en el desafio mal es incorrecto? o me equivoco, ya que utilizan una igualdad estrita y por ende no registra los sabados y domigos como fin de semana
¡Hola, Jonatan!
En el lenguaje JavaScript, la diferencia entre la igualdad estricta (===
) y la igualdad no estricta (==
) es fundamental e importante para escribir un código confiable.
Igualdad No Estricta (==
): Cuando usas ==
, JavaScript realiza una conversión de tipo automática (también conocida como coerción de tipo) si los operandos no son del mismo tipo. Por ejemplo, si comparas un número con una cadena que puede convertirse en un número, JavaScript convertirá la cadena en un número antes de realizar la comparación.
Ejemplo:
"1" == 1; // true, porque "1" se convierte a 1.
0 == false; // true, porque 0 se considera falso.
Igualdad Estricta (===
): Cuando usas ===
, JavaScript no realiza conversión de tipo. Si los tipos de los dos operandos no son los mismos, la comparación resultará directamente en false
. Esto se considera una mejor práctica porque evita errores sutiles y mejora la claridad del código.
Ejemplo:
"1" === 1; // false, porque los tipos son diferentes.
0 === false; // false, porque los tipos son diferentes.
En resumen, ==
compara solo el valor, realizando conversiones de tipo cuando es necesario, mientras que ===
compara tanto el valor como el tipo, sin realizar conversiones. La recomendación general es usar la igualdad estricta (===
) para evitar comportamientos inesperados debido a la coerción de tipo.
Entonces, si no te está registrando los sábados y domingos, debes verificar si las variables que estás comparando son del mismo tipo y si son exactamente iguales, una diferencia de mayúscula o minúscula, ya haría que no fueran iguales.
¡Saludos!