DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js💊| #13: ¿Qué imprime este código JavaScript?

¿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 }); 
Enter fullscreen mode Exit fullscreen mode
  • 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)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

La respuesta:

  • C: Hmm.. You don't have an age I guess

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 los if de la función, por más que usemos comparación estricta, seguirán siendo objetos diferentes por que sus referencias son diferentes:

{ age: 18 } == { age: 18 } //false { age: 18 } === { age: 18 } //false 
Enter fullscreen mode Exit fullscreen mode
Collapse
 
taneros profile image
Renatik

I'm JS dev and I use your articles to learn Spanish. Keep going! Spanish is fun.