Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

Entendiendo la desestructuración en JavaScript: arrays, objetos y valores por defecto

La desestructuración extrae valores de iterables por posición y propiedades de objetos por nombre. Aprende a usar renombrado, defaults, patrones anidados y rest.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

La desestructuración en JavaScript permite extraer valores de arrays o propiedades de objetos y asignarlos a variables mediante un patrón. Los arrays se leen por posición; los objetos, por nombre de propiedad. Con esa diferencia clara, puedes usar renombrado, valores por defecto y ...rest sin alterar el dato original.

Qué es la desestructuración en JavaScript

MDN la define como una sintaxis de JavaScript que permite desempaquetar valores de arrays o propiedades de objetos en variables distintas. En lugar de acceder a cada valor por separado, escribes un patrón que indica qué necesitas extraer. La sintaxis está ampliamente disponible en los navegadores desde agosto de 2016, según MDN Web Docs (página modificada el 10 de agosto de 2026).

As an Amazon Associate I earn from qualifying purchases.

De acceso manual a patrón

Estas instrucciones obtienen las mismas propiedades, pero la segunda forma las reúne en una sola declaración:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
const point = { x: 3, y: 7 };
const x = point.x;
const y = point.y;

const { x, y } = point;

Las llaves se parecen a las de un literal de objeto, pero aquí aparecen en el lado que recibe los valores: el patrón declara variables a partir de propiedades de point.

Desestructuración de arrays e iterables: importa la posición

En un patrón de array, cada variable corresponde a un lugar del iterable. El nombre de la variable no necesita coincidir con ningún nombre del dato:

const colors = ["rojo", "verde", "azul"];
const [first, second] = colors;

// first === "rojo"
// second === "verde"

Si no necesitas una posición, déjala vacía entre comas. Si la fuente no tiene suficientes elementos, las variables correspondientes quedan en undefined.

const values = [10, 20, 30];
const [first, , third] = values;

// first === 10
// third === 30

El patrón de array requiere un iterable, como un array. Un objeto ordinario con propiedades 0, 1 y length no basta por tener claves numéricas: debe poder iterarse.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Desestructuración de objetos: importa el nombre de propiedad

En un patrón de objeto, se extrae una propiedad por su nombre, sin importar el orden en que aparezca en el objeto:

const user = { id: 42, name: "Ana" };
const { id, name } = user;

Renombrar la variable local

Usa dos puntos para asignar una propiedad a una variable local con otro nombre. En name: displayName, name identifica la propiedad de origen y displayName es el nombre de la variable; el objeto no se modifica.

const { name: displayName } = user;

// displayName === "Ana"

Extraer propiedades anidadas

Puedes anidar patrones para llegar a una propiedad interior:

const account = { profile: { name: "Ana" } };
const { profile: { name } } = account;

// name === "Ana"

En este patrón se crea name, no una variable llamada profile. Si el patrón empieza a ocultar qué estructura de datos se espera, extraer primero profile y luego name en otra instrucción puede resultar más legible.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Valores por defecto y datos opcionales

Un valor por defecto se usa cuando el valor extraído es undefined, ya sea porque la propiedad falta o porque su valor es explícitamente undefined. No reemplaza null. La expresión de respaldo solo se evalúa si hace falta.

const { x = 1 } = { x: undefined };
// x === 1

const { x: y = 1 } = { x: null };
// y === null

También puedes dar un valor inicial a una posición de array:

const [size = "mediano"] = [];
// size === "mediano"

Desestructurar parámetros de función

Un parámetro puede usar un patrón directamente para recibir las propiedades que necesita la función. Si también quieres permitir que se omita el argumento completo, asigna un objeto vacío por defecto al parámetro:

function draw({ size = "big" } = {}) {
  return size;
}

draw();       // "big"
draw({});     // "big"
draw({ size: "small" }); // "small"

El valor por defecto de size cubre una propiedad ausente o undefined; el = {} exterior cubre una llamada sin argumento. Sin ese valor exterior, desestructurar un argumento undefined o null produce un TypeError. Un valor predeterminado para la propiedad no evita ese error porque el patrón ni siquiera puede leer el objeto.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Usar ...rest para recoger lo que queda

El operador rest en un patrón recoge los elementos o propiedades que no se asignaron antes. Debe ir al final del patrón:

const [first, ...remaining] = ["rojo", "verde", "azul"];
// remaining es ["verde", "azul"]

const record = { id: 7, status: "activo", owner: "Ana" };
const { id, ...details } = record;
// details es { status: "activo", owner: "Ana" }

En arrays, remaining es un array nuevo con los elementos restantes. En objetos, details es un objeto nuevo con las propiedades propias enumerables restantes. En ambos casos la copia es superficial: si un valor recogido es un objeto o array, la referencia interna se comparte con la fuente.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Errores frecuentes y cómo evitarlos

  • Usar llaves para posiciones o corchetes para propiedades: el patrón de array usa corchetes y posiciones; el de objeto usa llaves y nombres de propiedad.
  • Suponer que un valor por defecto reemplaza null: solo reemplaza undefined; comprueba o trata null por separado si es posible en tus datos.
  • Desestructurar una fuente no válida: el patrón de array necesita un iterable. El patrón de objeto no puede desestructurar null ni undefined.
  • Poner elementos después de rest: ...rest debe ser el último elemento del patrón.
  • Confundir renombrado con modificación: { name: displayName } crea un enlace local llamado displayName; no cambia la propiedad name del objeto.

Reasignar variables con un patrón de objeto

Si las variables ya están declaradas, encierra la asignación entre paréntesis:

let x, y;
const point = { x: 3, y: 7 };

({ x, y } = point);

Sin los paréntesis, las llaves al comienzo de una instrucción pueden interpretarse como el inicio de un bloque, no como un patrón de asignación.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.