Destrukturalizace
const [a, b] = pole; const { x, y: jine, ...zbytek } = objekt;
Zápis, který z pole nebo objektu vytáhne hodnoty rovnou do proměnných. Používá se při práci s daty z API, v parametrech funkcí i v cyklech.
Parametry
- [a, b] – podle pozice v poli; vynechané místo
[, b]prvek přeskočí. - { x } – podle názvu vlastnosti;
{ x: nazev }uloží do jiné proměnné. - = vychozi – hodnota, když prvek chybí nebo je
undefined. - ...zbytek – zbývající prvky nebo vlastnosti.
Příklady
const [prvni, , treti = 'nic', ...ostatni] = ['a', 'b', undefined, 'd', 'e'];
console.log(prvni, treti, ostatni);
const { nazev, cena: cenaKc, skladem = 0, ...zbytek } = { nazev: 'Káva', cena: 449, kod: 'K1', vaha: 1 };
console.log(nazev, cenaKc, skladem, zbytek);
let x = 1;
let y = 2;
[x, y] = [y, x];
console.log(x, y);
Výstup:
a nic [ 'd', 'e' ]
Káva 449 0 { kod: 'K1', vaha: 1 }
2 1
V parametrech funkce – pojmenované volby s výchozími hodnotami:
function vypis({ stranka = 1, naStranku = 10, razeni = 'datum' } = {}) {
return `strana ${stranka}, ${naStranku} na stránku, řazení ${razeni}`;
}
console.log(vypis({ stranka: 3 }));
console.log(vypis());
Výstup:
strana 3, 10 na stránku, řazení datum strana 1, 10 na stránku, řazení datum
Na co si dát pozor
- Výchozí hodnota se použije jen pro
undefined, ne pronull. - Destrukturalizace
nullneboundefinedskončí chybouTypeError– u parametru funkce proto pište výchozí= {}. - Přiřazení do existujících proměnných z objektu musí být v závorkách:
({ a, b } = objekt);.
Podpora
Baseline – široce dostupné: ve všech hlavních prohlížečích od srpna 2016, za široce dostupné se považuje od února 2019. Od verze: Chrome 49, Firefox 41, Safari 8; Node.js 6.0.0. Stav k říjnu 2026 (MDN browser-compat-data).
Příbuzné:
Rozkladová syntaxe (...)
Object.entries()
Operátor ?? (nullish coalescing)