¿Qué imprime este código JavaScript?
function checkAge(data) {
if (data === { age: 18 }) {
console.log("You are an adult!");
} else if (data == { age: 18 }) {
console.log("You are still an adult.");
} else {
console.log(`Hmm.. You don't have an age I guess`);
}
}
checkAge({ age: 18 });
- A: You are an adult!
- B: You are still an adult.
- C: Hmm.. You don't have an age I guess
Respuesta el el primer comentario.
Top comments (2)
La respuesta:
Cuando comparamos objetos hay que tener mucho cuidado.
Comparar primitivos es sencillo, pero recuerda que los objetos se almacenan en memoria teniendo en cuenta su referencia y no su valor.
Dicho esto, el objeto que pasamos como argumento a
checkAge
es el objeto{ age: 18 }
, este es diferente al objeto que evaluamos en losif
de la función, por más que usemos comparación estricta, seguirán siendo objetos diferentes por que sus referencias son diferentes:I'm JS dev and I use your articles to learn Spanish. Keep going! Spanish is fun.