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.


Discussion (2)

Collapse
duxtech profile image
Cristian Fernando Author • Edited on

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.