Novedades de ES9

En este post, exploraremos las principales características introducidas en ES9. Estas características pueden ayudarte a escribir código más limpio y eficiente. ¡Vamos a ello!

Propiedades de propagación (Spread Properties)

Los operadores rest (...) y spread (...) se han extendido a las propiedades de objetos, lo que permite copiar y combinar objetos de manera más sencilla.

Ejemplo:

const objeto = {
  nombre: "Ana",
  edad: 28,
}

const usuario = {
  ...objeto,
  ciudad: "Madrid"
}

console.log(usuario) // { nombre: "Ana", edad: 28, ciudad: "Madrid" }

La ventaja del spread operator es útil la creación de copias de objetos o la combinación de múltiples objetos.

En el post de spread operator y parámetro rest comparto más ejemplos de código y uso. Te invito a que le eches un ojo.

Promise.finally()

El método finally() se ejecuta después de que una promesa se haya cumplido o haya sido rechazada. Esto permite ejecutar código de limpieza o finalización, sin importar el resultado de la promesa.

fetch('<https://api.ejemplo.com/datos>')
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error))
  .finally(() => console.log('La operación ha terminado'))

Mejoras en expresiones regulares

ES9 trae varias mejoras para las expresiones regulares. Una de ellas es el soporte para grupos de captura con nombre y el modificador s (dotAll).

// Grupos de captura con nombre
const regexFecha = /(?<año>\\d{4})-(?<mes>\\d{2})-(?<dia>\\d{2})/
const match = regexFecha.exec('2023-08-18')
console.log(match.groups) // { año: '2023', mes: '08', dia: '18' }

// Flag 's' para modo dotall
const regex = /hola.mundo/s
console.log(regex.test('hola\\nmundo')) // true

Con esta mejora las expresiones regulares son más potentes y fáciles de usar.

Iteración asíncrona

Se introdujo la posibilidad de iterar sobre promesas de forma asíncrona utilizando for-await-of. Mira lo sencillo que es ahora el manejo de múltiples promesas de forma secuencial.

Un ejemplo con Promise:

async function ejemplo() {
  const arrayDePromesas = [
    Promise.resolve(1),
    Promise.resolve(2),
    Promise.resolve(3)
  ]

  for await (let valor of arrayDePromesas) {
    console.log(valor)
  }
}

ejemplo() // Imprimirá 1, 2, 3

Un ejemplo con Async/await

async function* generarDatos() {
  yield await new Promise(resolve => setTimeout(() => resolve('Dato 1'), 1000));
  yield await new Promise(resolve => setTimeout(() => resolve('Dato 2'), 1000));
}

(async () => {
  for await (const dato of generarDatos()) {
    console.log(dato);
  }
})();

JSON Superset

Esta novedad la aprendí al escribir el post. Ahora las cadenas JSON permiten que contengan los caracteres U+2028 (salto de linea) y U+2029 (salto de parrafo). Lo que mejora la compatibilidad con ciertos formatos de datos.

Ejemplo:

const jsonString = '{"lineSeparator":"\\u2028","paragraphSeparator":"\\u2029"}';
const jsonObject = JSON.parse(jsonString);

console.log(jsonObject); // { lineSeparator: '', paragraphSeparator: '' }</code>

Conclusión

ES9 trae consigo una serie de características que mejoran la eficiencia y la legibilidad del código JavaScript. Estas nuevas funcionalidades van desde la iteración asíncrona hasta las mejoras en las expresiones regulares. Permiten a los desarrolladores escribir código más limpio y manejable.

Recuerda que el mundo del desarrollo web está en constante evolución. Mantenerse actualizado con las últimas versiones de ECMAScript es clave para seguir siendo competitivo y eficiente. ¿Qué característica de ES9 te emociona más probar en tu próximo proyecto? Déjame tu comentario y comparte tus experiencia.


Avatar de darkusphantom

👉 Únete a mi Canal de WhatsApp para más recursos

👉 Sigueme en mis redes sociales para más contenido de programación y productividad


🚀 ¡Hackea tu productividad con IA!

Únete a mi comunidad de +100 artículos y descarga gratis mis 12 prompts maestros para reventar el semestre. Recibe tips de Frontend, Python y recursos que solo comparto por correo.

Prometo no llenar tu bandeja. Solo hacks útiles una vez al mes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *