Intermedio

Objetos y propiedades

Objetivo: Crear objetos, acceder a propiedades y usar destructuring y spread con seguridad.

Explicación

Un objeto agrupa datos en pares clave:valor.

- Acceso: obj.prop o obj["prop dinámica"].
- Destructuring: extrae valores a variables con una sintaxis compacta: const { nombre, edad = 0 } = persona (el 0 es valor por defecto si falta).
- Spread (...) copia propiedades: const copia = { ...original, activo: true }.
- Rest (...) en destructuring recoge el resto: const { primero, ...resto } = obj.

Optional chaining: obj?.prop evita el error “cannot read properties of undefined” cuando la propiedad puede no existir.

Ejemplos

const persona = { nombre: 'Ada', edad: 36 }
console.log(persona.nombre)      // "Ada"
console.log(persona['nombre'])   // "Ada"
const { nombre, edad = 0 } = persona
console.log(nombre, edad)        // "Ada" 36
const { pais = 'desconocido' } = persona
console.log(pais)                // "desconocido"
const copia = { ...persona, activo: true }
console.log(copia)               // { nombre, edad, activo: true }
console.log(persona.activo)      // undefined (el original no cambia)
const config = {}
console.log(config?.opcion?.timeout) // undefined, sin error

Comprueba tu comprensión

Pregunta 1 de 5

¿Qué hace el spread en const copia = { ...original, activo: true }?

Práctica opcional

Estos ejercicios no afectan tu dominio de la lección.

  • Crea un objeto usuario y una copia con spread que añada rol: "estudiante". Verifica que el original no cambió.
  • Dado { datos: { perfil: null } }, ¿qué imprime datos?.perfil?.nombre? Compruébalo.