¿No sabes por dónde empezar? Ayúdanos normalizando artículos.
¿Tienes experiencia? Crea alguno de estos artículos de actualidad.

ECMAScript

ECMAScript
Información sobre la plantilla
Parte de la familia lenguajes de programación
ECMAScript.jpeg
Especificación de lenguaje de programación publicada por Ecma International
CreadorBrendan Eich
Modelo de desarrolloEstandarización
Lanzamiento inicialJunio de 1997
Última versión estableECMAScript 2024(ES2024)(15ª edición)/Julio de 2024
Sistemas Operativos compatiblesWindows,Linux,macOS,Linux,iOS,Android
IdiomaInglés
LicenciaLicencia ECMA
Sitio web
https://262.ecma-international.org/

ECMAScript es un estándar de scripting creado para estandarizar el desarrollo de lenguajes de programación. Desde su creación, ha sido fundamental para el desarrollo de JavaScript y otros lenguajes relacionados.

Historia

ECMAScript fue originalmente desarrollado por Brendan Eich en Netscape, y se estandarizó por primera vez en junio de 1997 como ECMA-262. La necesidad de un estándar surgió con la proliferación de diferentes implementaciones de scripts en los navegadores web, lo que generaba incompatibilidades. Al estandarizar el lenguaje, se buscaba una mayor interoperabilidad entre diferentes plataformas y navegadores.

Desarrollo y versiones

La primera edición de ECMAScript se basó en JavaScript 1.1, tal como se implementó en Netscape Navigator 3.0. Desde su primera publicación, ECMAScript ha tenido varias ediciones, con nuevas versiones publicadas anualmente desde 2015. Cada nueva versión ha introducido mejoras y nuevas características, manteniendo el estándar actualizado con las necesidades y avances tecnológicos del desarrollo web.

Mantenimiento y promoción

El estándar ECMAScript es mantenido y promovido por ECMA International a través de su comité técnico TC39. Este comité se reúne regularmente para discutir y desarrollar nuevas versiones del estándar, asegurando que ECMAScript continúe evolucionando y adaptándose a los cambios en la tecnología y las necesidades del desarrollo web.

Versiones

Versión Fecha de Publicación Novedades Principales
ES1 Junio 1997 Primera edición basada en JavaScript 1.1
ES2 Junio 1998 Cambios editoriales para alinearse con ISO/IEC 16262:1998
ES3 Diciembre 1999 Expresiones regulares, manejo mejorado de cadenas, declaraciones de control, manejo de excepciones try/catch
ES4 Abandonada Propuesta abandonada debido a diferencias políticas sobre la complejidad del lenguaje
ES5 Diciembre 2009 Modo estricto, soporte para JSON, métodos de iteración de arrays
ES6 (ES2015) Junio 2015 let y const, valores predeterminados de parámetros, métodos de arrays como find y findIndex
ES7 (ES2016) Junio 2016 Operador exponencial (**), Array.includes
ES8 (ES2017) Junio 2017 Ajuste de cadenas, Object.entries y Object.values, funciones async
ES9 (ES2018) Junio 2018 Propiedades de propagación/rest, iteración asíncrona, Promise.finally
ES10 (ES2019) Junio 2019 String.trimStart y String.trimEnd, Array.flat, Object.fromEntries, catch opcional
ES11 (ES2020) Junio 2020
  • BigInt: Permite manejar números enteros muy grandes que no pueden ser representados por un número normal de JavaScript.
  • String.matchAll(): Método para buscar todas las ocurrencias de una cadena en otra cadena.
  • Nullish Coalescing Operator (??): Devuelve el primer argumento si no es nulo o indefinido.
  • Optional Chaining Operator (?.): Devuelve undefined si un objeto es null o undefined en lugar de lanzar un error.
  • Logical Assignment Operators: Incluye &&=,
=, y ??=.
ES12 (ES2021) Junio 2021
  • Promise.any(): Devuelve una promesa que se resuelve cuando cualquiera de las promesas en la lista se resuelve.
  • String.replaceAll(): Reemplaza todas las ocurrencias de una cadena en otra cadena.
  • Numeric Separators (_): Hace que los números sean más legibles al permitir separadores en los literales numéricos.
  • Logical Assignment Operators: Continuación de los operadores lógicos de asignación.
ES13 (ES2022) Junio 2022
  • Private Methods: Permite definir métodos privados en clases.
  • AggregateError: Nueva clase de error para representar múltiples errores a la vez.
  • WeakRef y FinalizationRegistry: Para referenciar objetos sin preservarlos de la recolección de basura.
  • Array.prototype.sort(): Hace que el método sort sea estable.
ES14 (ES2023) Junio 2023
  • Top-Level await: Permite usar await en el nivel superior de un módulo.
  • Class Fields Public/Private: Soporte para campos públicos y privados en clases.
  • Numeric Separators en Literales de Cadenas: Extensión del uso de separadores numéricos a literales de cadena.
ES15 (ES2024) Junio 2024
  • Module Interop: Mejoras en la interoperabilidad entre módulos.
  • Enhanced Error Handling: Manejo mejorado de errores con nuevas funcionalidades.
  • Performance Improvements: Optimizaciones para mejorar el rendimiento general del lenguaje.

Beneficios

Desde su creación, ECMAScript ha sido crucial para la interoperabilidad y el desarrollo de lenguajes de scripting en la web. Su estandarización ha permitido un desarrollo más coherente y eficiente de aplicaciones web, beneficiando tanto a desarrolladores como a usuarios.

Fuentes