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

ECMAScript

{{Ficha Software |nombre=ECMAScript |familia= Lenguajes de programación |imagen=ECMAScript.jpeg |tamaño= |descripción= Especificación de lenguaje de programación publicada por Ecma International |imagen2= |tamaño2= |descripción2= Estándar de scripting utilizado como base para varios lenguajes de programación modernos, incluyendo JavaScript. Fue creado para estandarizar el desarrollo de scripts y facilitar la interoperabilidad entre diferentes implementaciones. ECMAScript es mantenido por ECMA International a través de su comité técnico TC39, y ha evolucionado continuamente desde su primera publicación en 1997, incorporando nuevas características y mejoras para adaptarse a las necesidades cambiantes del desarrollo de software |creador= Brendan Eich |desarrollador= Ecma International |diseñador= Brendan Eich |modelo de desarrollo= Estandarización |lanzamiento inicial= Junio de 1997 |versiones= ES1, ES2, ES3, ES5, ES6 (ES2015), ES2016, ES2017, ES2018, ES2019, ES2020, ES2021, ES2022 |última versión estable= ES2022 (junio de 2022) |última versión estable= ECMAScript 2024(ES2024)(15ª edición)/Julio de 2024 |género= Lenguaje de programación |sistemas operativos= Windows,Linux,[[macOS,Linux,iOS,Android |idioma= Inglés |licencia=Licencia ECMA |premios= |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