Nos permite almacenar los valores de una entidad compleja (un array o un objeto) en variables independientes.
Deconstrucción de array
let arr = [1, 2, 3];
let [a, b, c] = arr;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
Deconstrucción de un objeto
let obj = {a: 1, b: 2, c: 3};
let {a, b, c } = obj;
console.log(a); // 1
console.log(b); // 2
console.log(c); // 3
Importar un objeto y deconstruirlo
funciones.js
export const saltar = () => console.log('saltar');
export const correr = () => console.log('correr');
import { saltar, correr } from funciones;
Importar todos los exports de un módulo
// En el siguiente caso, misFunciones será un objeto normal, cuyas propiedades serán los exports del módulo importado
import * as misFunciones from 'funciones';
// Para poder usarlos, tendré dos opciones:
const { saltar, correr } = misFunciones;
// o usar misFunciones.saltar y misFunciones.correr
Rest operator/ spread operator (…)
Rest operator
function doMath(operator, ...numbers) {
console.log(operator);
console.log(numbers);
}
doMath('add', 1, 2, 3);
Spread operator
const a = [1,2,3];
const b = [...a, 4,5,6]; // [1, 2, 3, 4, 5, 6]