Desestructuracion en Javascript

Podemos acceder a las posiciones de un arreglo de diferentes formas:

let diasSemana = [lunes, martes, miercoles, jueves, viernes, sabado, domingo];
diasSemana[2] //miercoles
let[lunes, martes, miercoles] = diasSemana
console.log(miercoles) //miercoles


Basicamente estamos creando una variable y su valor asignado va a dependender de la posicion que ocupa ese arreglo.
Por ejemplo:
let[lunes, , , , , , domingo] = diasSemana
console.log(domingo) //domingo

let erroresObjeto = ["El objeto no existe", "El objeto es incorrecto", "El objeto fue eliminado"]
let [noExiste, incorrecto, eliminado ] = erroresObjeto

Hay que recordar que la desestructuracion solo es valida para objetos y strings (se pueden extraer sus propiedades) y arreglos (se extren sus posiciones), no para valores primitivos. Es decir:
let nombre = ” Fernando”
let {length} = nombre // 8
let {largo} = nombre.length //error

Otro caso de uso es para evitar codigo repetido por ejemplo, en llamadas a una API:
const res = await fetch('https://api.weather.gov/')
const jsonResponse = await res.json()
const data = jsonResponse.data;
const status = jsonResponse.status;
const timestamp = jsonResponse.timestamp;

Lo cual lo podemos reducir a
const {data, status, timestamp} = jsonResponse;