Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

95
Vistas
¿Cómo esperar un posible valor indefinido con notación de corchete de objeto doble?

Por ejemplo, dado:

 const foo = {name: 'john', age: 12} console.log(foo?.age);

Dado lo anterior, estamos salvaguardando usando ? en caso de que foo no tenga la propiedad age pero cómo se puede hacer en la siguiente situación (si es posible):

 const foo = {name: 'john', house: {color: 'white', garage: true }} console.log(foo['house']?['yard']

¿Cómo acceder a una propiedad, dentro de la house de la propiedad que podría estar indefinida usando paréntesis?

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Primero, tiene una gran comprensión del operador nulo seguro, cuando dice foo?.age no está salvaguardando el campo age sino el objeto foo en sí mismo, ejemplos:

  1. {a: 2}?.age y {a: 2}.age devuelven lo mismo, no se arrojará ningún error en ambos casos, solo se devuelve el valor undefined .
  2. undefined?.age y undefined.age son diferentes, el primero devolverá undefined mientras que el segundo arrojará un error.

Ahora, después de comprender de qué se trata el operador nulo seguro, para evitar que foo["house"] se lance porque foo podría no estar definido (no porque la propiedad de la casa no exista) simplemente use foo?.["house"] .

Si desea verificar la existencia de propiedad de la casa, puede hacer algo como esto:

 if(foo?.["house"]){ // here house exists so it's safe to read its value using foo.house }

O:

 if(foo?.hasOwnProperty("house")){ // the same thing, safe to access foo.house }
about 4 years ago · Santiago Trujillo Denunciar

0

No se ve muy bien, pero es todo lo que tenemos.

 const foo = {name: 'john', house: {color: 'white', garage: true }} console.log(foo['house']?.['yard'])

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda