Este operador puede traer las propiedades de un objeto que aun no se ha construido.
const obj = {
name: 'Pablo',
age: 27,
country: 'EC'
};
let { name, ...all} = obj;
console.log(name, all);
//Salida> Pablo {age: 27, country: 'EC'}
Como se muestra en la salida primero vemos el nombre, y luego todo lo demás encapsulado en un objeto, de esta manera podemos establecer lo que necesitamos del objeto.
let { country, ...all} = obj;
console.log(all);
//Salida> {name: 'Pablo', age: 27}
En el ejemplo estamos excluyendo a country y lo demas guardamos en un objeto.
Nos permite usando el operador de propagación unir objetos.
const obj = {
name: 'Pablo',
age: 27
};
const obj1 = {
...obj,
country: 'EC'
}
console.log(obj1)
// salida>
// {name: 'Pablo', age: 27, country: 'EC'}
Nos permite saber cuando una promesa ha finalizado para poder ejecutar una función o algoritmo, según sea el caso.
const helloWorld = () => {
return new Promise((resolve, reject) => {
(true)
? setTimeout(() => resolve('Hello World'), 3000)
: reject(new Error('Test'))
})
}
helloWorld()
.then(response => console.log(response))
.catch(error => console.log(error))
.finally(() => console.log('Finalizo'))
// salida>
// Hello World
// Finalizo
Una de las mejoras es el poder agrupar regex y poder acceder a estos de forma independiente.
const regexData = /([0-9]{4})-([0-9]{2})-([0-9]{2})/
const match = regexData.exec('2022-04-23');
const year = match[1];
const month = match[2];
const day = match[3];
console.log(year, month, day);
// salida>
// 2022 04 23