ES6+ Features (Destructuring, Spread, Rest)
Volver a clases
Fundamentos de ProgramaciónPrincipiante

ES6+ Features (Destructuring, Spread, Rest)

120 min
0 vistas

Destructuring, spread/rest, template literals avanzados y parámetros por defecto para escribir código más expresivo.

Destructuring en arrays y objetos

  • Qué resuelve: Permite extraer valores en una sola línea, evitando código repetitivo.
  • Arrays: orden por posición, con valores por defecto y rest para "el resto".
  • Objetos: extraer por nombre de propiedad, renombrar variables y destructurar anidados.
  • En funciones: destructuring en parámetros para recibir solo lo que necesitas.
javascript
1const frutas = ["manzana", "banana", "naranja"];
2const [primera, , tercera] = frutas;
3
4const persona = { nombre: "Ana", edad: 28, ciudad: "Madrid" };
5const { nombre, edad } = persona;

Spread y Rest

  • Spread: "expande" arrays u objetos, útil para copiar, combinar y crear nuevas estructuras sin mutar.
  • Rest: agrupa parámetros restantes en arrays, ideal para funciones flexibles.
javascript
1const arr1 = [1, 2];
2const arr2 = [3, 4];
3const combinado = [...arr1, ...arr2];
4
5function sumar(...numeros) {
6  return numeros.reduce((acc, n) => acc + n, 0);
7}

Template Literals avanzados

  • Multilínea y interpolación con expresiones dinámicas.
  • Uso de tagged templates para formateo o sanitización.
javascript
1const nombre = "María";
2const mensaje = `Hola ${nombre}, hoy es ${new Date().toLocaleDateString()}`;

Ejemplos de Código

3 ejemplos

Destructuring de objetos anidados

javascript
1const usuario = { datos: { nombre: "Carlos", email: "carlos@email.com" } };
2const {
3  datos: { nombre, email },
4} = usuario;

Merge de configuraciones

javascript
1const defaults = { tema: "claro", idioma: "es" };
2const custom = { tema: "oscuro" };
3const config = { ...defaults, ...custom };

Logger flexible

javascript
1function log(nivel, ...mensajes) {
2  console.log(`[${nivel}]`, ...mensajes);
3}

Recursos

3 recursos disponibles

Documentación Oficial

DocumentaciónPrincipiante

ES6 Features

Resumen de las nuevas características introducidas en ES6.

¡Hora de Practicar!

PrácticaPrincipiante15 min

Práctica guiada - Refactor con destructuring

Práctica

Refactorizar objetos y arrays del proyecto anterior usando destructuring y parámetros por defecto.

Desafío de Código

EjercicioPrincipiante15 min

Ejercicios - Spread y Rest

Ejercicios

(1) Unir listas sin mutar, (2) clonar objetos, (3) crear función suma con cantidad variable de argumentos.

ALVESC ACADEMY - Plataforma Educativa