DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #68 Explica este c贸digo JavaScript

Explica este c贸digo JavaScript

const banda = {
  id:1,
  nombre: "Radiohead",
  "tipo de musica": "Rock",
  albunes: ["Pablo Honey", "Ok Computer", "In Rainbows"]
};

banda.vocalista = undefined;
console.log("vocalista" in banda);
delete banda["tipo de musica"];
console.log("tipo de musica" in banda);
Enter fullscreen mode Exit fullscreen mode

A. false, false
B. true, false
C. false, true
D. undefined, true

Respuesta en el primer comentario.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author

Respuesta
B. true, false

Existe diferencias entre declarar la propiedad de un objeto como undefined o eliminarla con el operador unario delete.

El objeto banda original no tiene la propiedad vocalista, pero lo agregamos con el valor undefined, entonces el objeto quedaria as铆:

const banda = {
  id:1,
  nombre: "Radiohead",
  "tipo de musica": "Rock",
  albunes: ["Pablo Honey", "Ok Computer", "In Rainbows"],
  vocalista: undefined
};
Enter fullscreen mode Exit fullscreen mode

Pese a que el valor de vocalista es undefined la propiedad existe como tal dentro del objeto, es por ello que al verificarlo con el operador in obtenemos true.

Algo diferente pasa cuando eliminamos con delete la propiedad tipo de musica, esta deja de existir en el objeto, no tiene ning煤n tipo de valor, ni siquiera undefined, el objeto quedar铆a as铆:

const banda = {
  id:1,
  nombre: "Radiohead",
  albunes: ["Pablo Honey", "Ok Computer", "In Rainbows"],
  vocalista: undefined
};
Enter fullscreen mode Exit fullscreen mode

Por ello al verificar nuevamente con in la existencia de una propiedad con la llave tipo de musica obtenemos false.