Volver al Blog
Frontend 25 de enero de 2026 6 min de lectura

Nuevas funciones de JavaScript en ES2025

Explora las últimas incorporaciones a JavaScript en ES2025, incluidos patrones asíncronos mejorados y mejoras de módulos.

JavaScript JavaScript ES2025 Web
Neiser Custodio

Neiser Custodio

Desarrollador FullStack

Nuevas funciones de JavaScript en ES2025

Introducción a ES2025

ECMAScript 2025 trae mejoras significativas al lenguaje JavaScript, enfocándose en mejorar la experiencia del desarrollador y hacer el código más expresivo y legible. Veamos las características más importantes de esta nueva versión.

Pipeline Operator

Uno de los cambios más esperados es el pipeline operator (|>), que permite encadenar operaciones de forma más legible:

Antes y después

Sin pipeline operator, el código anidado puede volverse difícil de leer. El nuevo operador permite escribir transformaciones de datos de forma más natural y clara, similar a cómo funcionan los pipes en shell Unix.

Mejora en legibilidad

El pipeline operator hace que el flujo de datos sea más explícito, facilitando entender qué transformaciones se aplican y en qué orden.

Record y Tuple

JavaScript finalmente obtiene estructuras de datos inmutables primitivas:

Record (objetos immutables)

Los Records son como objetos pero completamente immutables. Una vez creados, no pueden modificarse. Esto elimina clases enteras de bugs relacionados con mutaciones accidentales.

Tuple (arrays immutables)

Similar a los Records pero para arrays. Los Tuples garantizan que la estructura de datos no cambiará, lo cual es especialmente útil en programación funcional y React.

Ventaja para React

Records y Tuples pueden compararse por valor en lugar de referencia, lo que simplifica optimizaciones de rendimiento en React con React.memo y useMemo.

Pattern Matching

El pattern matching permite escribir condicionales complejas de forma más declarativa:

Más allá del switch

A diferencia del switch tradicional, el pattern matching puede desestructurar, verificar tipos y hacer matching de patrones complejos en una sola expresión. Esto hace el código más conciso y menos propenso a errores.

Temporal API

Finalmente, una API moderna para manejar fechas y tiempos que reemplaza al problemático objeto Date:

Principales mejoras

La nueva API Temporal es immutable, soporta time zones correctamente, separa fechas de tiempos, y tiene una API más intuitiva. Trabajar con zonas horarias y cálculos de fechas ahora es significativamente más simple.

Tipos principales

  • Temporal.PlainDate: Solo fecha, sin hora
  • Temporal.PlainTime: Solo hora, sin fecha
  • Temporal.PlainDateTime: Fecha y hora sin zona horaria
  • Temporal.ZonedDateTime: Fecha, hora y zona horaria
  • Temporal.Duration: Períodos de tiempo

Migración gradual

El objeto Date no desaparecerá inmediatamente. Puedes migrar gradualmente a Temporal API mientras continúas usando Date en código legacy.

Decorators

Los decorators nativos finalmente llegan a JavaScript, estandarizando lo que TypeScript ha usado por años:

Casos de uso comunes

Los decorators permiten agregar metadata o modificar comportamiento de clases y métodos de forma declarativa. Son especialmente útiles para dependency injection, validación, logging y caching.

Sintaxis y aplicación

Se colocan arriba de clases, métodos, propiedades o parámetros usando el símbolo @. Pueden recibir parámetros para configurar su comportamiento.

Import Assertions

Control más granular sobre cómo se importan módulos:

Importando JSON y CSS

Ahora puedes importar JSON, CSS y otros formatos con type assertions que especifican explícitamente qué tipo de módulo estás importando. Esto mejora la seguridad y previene confusiones.

Consideración de seguridad

Las import assertions previenen que archivos maliciosos se ejecuten como código JavaScript cuando esperabas solo datos JSON o CSS.

Array Grouping

Métodos nativos para agrupar elementos de arrays:

Object.groupBy y Map.groupBy

Finalmente no necesitas lodash para operaciones comunes de agrupamiento. Estos métodos nativos permiten agrupar elementos de un array según una función que extraes la clave de agrupación.

Promise.withResolvers

Una forma más ergonómica de crear Promises con resolvers externos:

Simplificando patrones comunes

Antes tenías que usar trucos para acceder a resolve y reject fuera del constructor de Promise. El nuevo método withResolvers devuelve la promise junto con sus resolvers de forma limpia.

String.dedent

Elimina la indentación común de template literals:

Mejorando legibilidad de strings multilínea

Cuando usas template literals para SQL, HTML o texto largo, mantener la indentación del código hace que el string resultante tenga espacios innecesarios. dedent los elimina automáticamente.

Ideal para queries

Especialmente útil cuando escribes SQL queries o GraphQL queries en template literals. El código queda indentado correctamente pero el string final no tiene espacios extras.

Set Methods

Operaciones matemáticas de conjuntos nativas:

Operaciones soportadas

  • intersection: Elementos en ambos sets
  • union: Elementos en cualquiera de los sets
  • difference: Elementos en el primer set pero no en el segundo
  • symmetricDifference: Elementos en uno u otro pero no en ambos
  • isSubsetOf: Si todos los elementos están en otro set
  • isSupersetOf: Si contiene todos los elementos de otro set
  • isDisjointFrom: Si no comparten elementos

Aplicaciones prácticas

Útil para operaciones con tags, permisos, filtros y cualquier lógica que involucre conjuntos de elementos.

Conclusión

ES2025 representa un salto significativo en la evolución de JavaScript. Las nuevas características hacen el lenguaje más expresivo, seguro y agradable de usar.

No todas las características estarán disponibles inmediatamente en todos los navegadores. Usa herramientas de transpilación como Babel y verifica el soporte en caniuse.com antes de usar en producción.

Lo más emocionante es que estas mejoras demuestran que JavaScript continúa evolucionando activamente, incorporando las mejores ideas de otros lenguajes mientras mantiene su identidad.

¿Cuál característica te emociona más? Experimenta con ellas en proyectos personales antes de adoptarlas en producción.

Neiser Custodio

Neiser Custodio

Desarrollador FullStack

Me apasiona crear soluciones web escalables y compartir conocimientos a través de publicaciones de blog enriquecedoras.