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);
A. false
, false
B. true
, false
C. false
, true
D. undefined
, true
Respuesta en el primer comentario.
Top comments (1)
Respuesta
B.
true
,false
Existe diferencias entre declarar la propiedad de un objeto como
undefined
o eliminarla con el operador unariodelete
.El objeto
banda
original no tiene la propiedadvocalista
, pero lo agregamos con el valorundefined
, entonces el objeto quedaria así:Pese a que el valor de
vocalista
esundefined
la propiedad existe como tal dentro del objeto, es por ello que al verificarlo con el operadorin
obtenemostrue
.Algo diferente pasa cuando eliminamos con
delete
la propiedadtipo de musica
, esta deja de existir en el objeto, no tiene ningún tipo de valor, ni siquieraundefined
, el objeto quedaría así:Por ello al verificar nuevamente con
in
la existencia de una propiedad con la llavetipo de musica
obtenemosfalse
.