Menu
Coddy logo textTech

Encadenamiento opcional en JSON

Parte de la sección Lógica y Flujo del Journey de JavaScript de Coddy — lección 24 de 65.

El encadenamiento opcional (?.) te permite acceder de forma segura a propiedades anidadas sin preocuparte por errores si una propiedad es null o undefined.

Ejemplo sin encadenamiento opcional:

let obj = {};
console.log(obj.key1.key2);
// Error: No se pueden leer las propiedades de undefined

Ejemplo con encadenamiento opcional:

let obj = {};
console.log(obj.key1?.key2);
// undefined (sin error)
  • Si key1 existe, accede a key2.
  • Si key1 es null o undefined, devuelve undefined en lugar de lanzar un error.

Más ejemplos:

let user = {
	profile: {
		name: "Alice"
	}
};

console.log(user.profile?.name);
// "Alice"
console.log(user.profile?.age);
// undefined (sin error)
console.log(user.address?.city);
// undefined (sin error)
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Hoja de referencia

El encadenamiento opcional (?.) accede de forma segura a propiedades anidadas sin errores si una propiedad es null o undefined:

let obj = {};
console.log(obj.key1?.key2);
// undefined (sin error)

Si la propiedad existe, accede al siguiente nivel. Si es null o undefined, devuelve undefined en lugar de lanzar un error.

let user = {
	profile: {
		name: "Alice"
	}
};

console.log(user.profile?.name);    // "Alice"
console.log(user.profile?.age);     // undefined
console.log(user.address?.city);    // undefined

Pruébalo tú mismo

Esta lección no incluye un desafío de código.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo