ECMAScript


De Wikipedia, la enciclopedia libre
  (Redirigido desde ES6 )
Saltar a navegación Saltar a búsqueda

ECMAScript ( / ɛ k m ə s k r ɪ p t / ) (o ES ) [1] es un lenguaje de programación de propósito general , estandarizada por ECMA Internacional según el documento ECMA-262 . Es un estándar de JavaScript destinado a garantizar la interoperabilidad de las páginas web en diferentes navegadores web . [2] ECMAScript se usa comúnmente para scripts del lado del cliente en la World Wide Web.Y que cada vez se utiliza para escribir aplicaciones y servicios de servidor utilizando Node.js .

ECMAScript, ECMA-262 y JavaScript

ECMA-262 o la Especificación del lenguaje ECMAScript define el lenguaje ECMAScript , o simplemente ECMAScript (también conocido como JavaScript ). [3] ECMA-262 solo especifica la sintaxis del lenguaje y la semántica de la API central , como Array , Function y globalThis , mientras que las implementaciones válidas de JavaScript agregan su propia funcionalidad como entrada / salida o manejo del sistema de archivos.

Historia

La especificación ECMAScript es una especificación estandarizada de un lenguaje de scripting desarrollado por Brendan Eich de Netscape ; inicialmente llamado Mocha, luego LiveScript y finalmente JavaScript. [4] En diciembre de 1995, Sun Microsystems y Netscape anunciaron JavaScript en un comunicado de prensa. [5] En noviembre de 1996, Netscape anunció una reunión de la organización de estándares Ecma International para avanzar en la estandarización de JavaScript. [6]La primera edición de ECMA-262 fue adoptada por la Asamblea General de Ecma en junio de 1997. Desde entonces se han publicado varias ediciones del estándar de lenguaje. El nombre "ECMAScript" fue un compromiso entre las organizaciones involucradas en la estandarización del lenguaje, especialmente Netscape y Microsoft, cuyas disputas dominaron las primeras sesiones de estándares. Eich comentó que "ECMAScript siempre fue un nombre comercial no deseado que suena como una enfermedad de la piel ". [7] ECMAScript se ha formalizado a través de semántica operacional de trabajo en la Universidad de Stanford y el Departamento de Informática , Imperial College de Londres para el análisis de la seguridad y la normalización. [8]

Versiones

Se han publicado once ediciones de ECMA-262. El trabajo en la versión 12 de la norma finalizó en junio de 2021. [9]

En junio de 2004, Ecma International publicó el estándar ECMA-357, definiendo una extensión de ECMAScript, conocida como ECMAScript para XML (E4X). Ecma también definió un "Perfil compacto" para ECMAScript, conocido como ES-CP o ECMA 327, que fue diseñado para dispositivos con recursos limitados, que se retiró en 2015. [17]

4ta edición (abandonada)

La cuarta edición propuesta de ECMA-262 ( ECMAScript 4 o ES4 ) habría sido la primera actualización importante de ECMAScript desde que se publicó la tercera edición en 1999. La especificación (junto con una implementación de referencia) estaba originalmente programada para completarse en octubre de 2008. [18] El primer borrador estaba fechado en febrero de 1999. [19] El grupo de trabajo publicó una descripción general del lenguaje el 23 de octubre de 2007. [20]

En agosto de 2008, la propuesta de la cuarta edición de ECMAScript se había reducido a un código de proyecto llamado ECMAScript Harmony . Las características que se estaban discutiendo para Harmony en ese momento incluían:

  • clases ,
  • un sistema de módulos ,
  • anotaciones de tipo opcionales y tipificación estática , probablemente utilizando un sistema de tipo estructural ,
  • generadores e iteradores ,
  • asignación de desestructuración , y
  • tipos de datos algebraicos .

La intención de estas características era en parte apoyar mejor la programación en general y permitir sacrificar parte de la capacidad del script para ser dinámico para mejorar el rendimiento. Por ejemplo, Tamarin , la máquina virtual para ActionScript, desarrollada y de código abierto por Adobe, tiene soporte de compilación justo a tiempo (JIT) para ciertas clases de scripts.

Además de introducir nuevas funciones, se propuso corregir algunos errores de ES3 en la edición 4. [21] [22] Estas correcciones y otras, y el soporte para la codificación / decodificación JSON , se han incorporado a la especificación ECMAScript, 5ª edición. [23]

El trabajo comenzó en la Edición 4 después de que se completó la especificación ES-CP (Perfil compacto) y continuó durante aproximadamente 18 meses, donde se logró un progreso lento equilibrando la teoría de la especificación JavaScript 2 de Netscape con la experiencia de implementación de JScript .NET de Microsoft. Después de un tiempo, el enfoque cambió al estándar ECMAScript para XML (E4X). La actualización no ha estado libre de controversias. A finales de 2007, un debate entre Eich, más tarde director de tecnología de la Fundación Mozilla , y Chris Wilson , arquitecto de plataforma de Microsoft para Internet Explorer , se hizo público en varios blogs.. Wilson advirtió que debido a que los cambios propuestos a ECMAScript lo hacían retrocompatible en algunos aspectos con versiones anteriores del lenguaje, la actualización equivalía a "romper la Web" [24] y que las partes interesadas que se oponían a los cambios estaban "ocultas a la vista". . [25] Eich respondió afirmando que Wilson parecía estar "repitiendo falsedades en blogs" y negó que hubiera habido un intento de reprimir la disidencia y desafió a los críticos a dar ejemplos específicos de incompatibilidad. [26] Señaló que Microsoft Silverlight y Adobe AIR se basan en C # y ActionScript 3 respectivamente, los cuales son más grandes y más complejos que ECMAScript Edition 3.[27]

5ta Edición

Yahoo, Microsoft, Google y otros disidentes de la cuarta edición formaron su propio subcomité para diseñar una actualización menos ambiciosa de ECMAScript 3, tentativamente llamada ECMAScript 3.1. Esta edición se centraría en la seguridad y las actualizaciones de la biblioteca, con un gran énfasis en la compatibilidad. Después del combate público mencionado anteriormente, los equipos de ECMAScript 3.1 y ECMAScript 4 acordaron un compromiso: las dos ediciones se trabajarían, en paralelo, con coordinación entre los equipos para garantizar que ECMAScript 3.1 siga siendo un subconjunto estricto de ECMAScript 4 tanto en semántica como en sintaxis.

Sin embargo, las diferentes filosofías en cada equipo dieron como resultado repetidas rupturas de la regla del subconjunto, y seguía siendo dudoso que los disidentes de ECMAScript 4 alguna vez apoyaran o implementaran ECMAScript 4 en el futuro. Después de más de un año desde el desacuerdo sobre el futuro de ECMAScript dentro del Comité Técnico de Ecma 39, los dos equipos llegaron a un nuevo compromiso en julio de 2008: Brendan Eich anunció que Ecma TC39 enfocaría el trabajo en el ECMAScript 3.1 (luego renombrado a ECMAScript, 5th Edition) con la colaboración total de todas las partes, y los proveedores apuntarían al menos a dos implementaciones interoperables para principios de 2009. [28] [29]En abril de 2009, Ecma TC39 publicó el borrador "final" de la quinta edición y anunció que se esperaba que las pruebas de implementaciones interoperables se completaran a mediados de julio. [30] El 3 de diciembre de 2009 se publicó ECMA-262 5ª edición. [31]

6a edición - ECMAScript 2015

La sexta edición, ECMAScript 6 ( ES6 ) y luego renombrada a ECMAScript 2015, se finalizó en junio de 2015. [11] [32] Esta actualización agrega una nueva sintaxis significativa para escribir aplicaciones complejas, incluidas declaraciones de clase ( ), módulos ES6 como , pero los define semánticamente en los mismos términos que el modo estricto ECMAScript 5. Otras características nuevas incluyen iteradores y bucles, generadores de estilo Python , expresión de función de flecha ( ), palabra clave para declaraciones locales, palabra clave para declaraciones locales constantes, datos binarios, matrices escritas, nuevas colecciones (mapas, conjuntos y WeakMap), promesasclass Foo { ... }import * as moduleName from "..."; export const Foofor...of() => {...}letconst, mejoras numéricas y matemáticas, reflexión, proxies (metaprogramación para objetos virtuales y envoltorios) y literales de plantilla para cadenas. [33] [34] La lista completa es extensa. [35] [36] Como la primera especificación de "ECMAScript Harmony", también se conoce como "ES6 Harmony".

7a edición - ECMAScript 2016

La séptima edición, o ECMAScript 2016, se finalizó en junio de 2016. [12] Sus características incluyen el alcance de bloques de variables y funciones, patrones de desestructuración (de variables), llamadas de cola adecuadas, operador de exponenciación **para números await, asyncpalabras clave para programación asincrónica ( como preparación para ES2017), y la Array.prototype.includesfunción. [12] [37]

El operador de exponenciación es equivalente a Math.pow, pero proporciona una sintaxis más simple similar a lenguajes como Python, F #, Perl y Ruby. async/ awaitfue aclamado como una forma más fácil de usar promesas y desarrollar código asincrónico.

8a edición - ECMAScript 2017

La 8ª edición, o ECMAScript 2017, se finalizó en junio de 2017. [13] Sus características incluyen las Object.values, Object.entriesy Object.getOwnPropertyDescriptorsfunciones para facilitar la manipulación de objetos, async/awaitconstrucciones que los generadores de uso y promesas, y características adicionales para la concurrencia y atómicas . [38] [13]

9a edición - ECMAScript 2018

La novena edición, o ECMAScript 2018, se finalizó en junio de 2018. [14] Las nuevas características incluyen el operador de propagación, parámetros de descanso, iteración asincrónica Promise.prototype.finallyy adiciones a RegExp. [14]

El operador de extensión permite copiar fácilmente las propiedades del objeto, como se muestra a continuación.

dejar  objeto  =  { a :  1 ,  b :  2 }let  objectClone  =  Object . asignar ({},  objeto )  // antes de ES9 let  objectClone  =  {... object }  // sintaxis de ES9let  otherObject  =  { c :  3 ,  ... object } consola . log ( otroObjeto )  // -> {c: 3, a: 1, b: 2}

10a edición - ECMAScript 2019

La edición 10ª, o ECMAScript 2019, se publicó en junio de 2019. [15] Las funciones adicionales incluyen, pero no se limitan a, Array.prototype.flat, Array.prototype.flatMap, cambia a Array.sorty Object.fromEntries. [15]

Array.sortahora se garantiza que es estable, lo que significa que los elementos con la misma prioridad de clasificación aparecerán en el mismo orden en la matriz ordenada. Array.prototype.flat(depth=1)aplana una matriz a una profundidad especificada, lo que significa que todos los elementos de la submatriz (hasta la profundidad especificada) se concatenan de forma recursiva.

11a edición - ECMAScript 2020

La undécima edición, o ECMAScript 2020, se publicó en junio de 2020. [16] Además de las nuevas funciones, esta versión introduce un BigInttipo primitivo para enteros de tamaño arbitrario, el operador coalescente nulo y el objeto globalThis . [dieciséis]

Los BigInts se crean con el BigIntconstructor o con la sintaxis 10n, donde "n" se coloca después del número literal. BigInts permite la representación y manipulación de enteros más allá Number.MAX_SAFE_INTEGER, mientras que los números están representados por un valor IEEE 754 de 64 bits de doble precisión . Las funciones integradas en Mathno son compatibles con BigInts; por ejemplo, la exponenciación de BigInts debe realizarse con el **operador en lugar de Math.pow.

El operador de fusión nula ??, devuelve su operando del lado derecho cuando su lado izquierdo es nullo undefined. Esto contrasta con el ||operador, que devolvería "string"todos los valores "falsos", como los que se muestran a continuación.

sin definir  ??  "cadena"  // -> "cadena" nula  ??  "cadena"  // -> "cadena" ¿ falso  ?  "cadena"  // -> falso NaN  ??  "cadena"  // -> NaN

El encadenamiento opcional hace posible acceder a las propiedades anidadas de un objeto sin tener una verificación Y en cada nivel.

Un ejemplo es const zipcode = person?.address?.zipcode. Si alguna de las propiedades no está presente, zipcodelo estará undefined.

12a edición - ECMAScript 2021

La 12ª edición, o ECMAScript 2021, se publicó en junio de 2021. [9] Esta versión presenta el replaceAllmétodo para cadenas; Promise.any, un combinador de promesas que se cortocircuita cuando se cumple un valor de entrada; AggregateError, un nuevo tipo de error para representar varios errores a la vez; operadores de asignación lógica ( ??=, &&=, ||=); WeakRef, para hacer referencia a un objeto de destino sin preservarlo de la recolección de basura, y FinalizationRegistry, para gestionar el registro y la anulación del registro de las operaciones de limpieza realizadas cuando los objetos de destino son recolectados de basura; separadores para literales numéricos ( 1_000); y Array.prototype.sortse hizo más preciso, reduciendo la cantidad de casos que resultan en un orden de clasificación definido por la implementación.

ES.Next

ES.Next es un nombre dinámico que se refiere a cualquiera que sea la próxima versión en el momento de escribir este artículo. Las características siguientes incluyen propuestas terminadas (también conocidas como "propuestas de la etapa 4") que se enumeran en las propuestas terminadas que no forman parte de una especificación ratificada. El comité de idiomas sigue un modelo de "especificaciones vivas", por lo que estos cambios son parte del estándar y la ratificación es una formalidad. [ cita requerida ]

Características

El lenguaje ECMAScript incluye características estructuradas , dinámicas , funcionales y basadas en prototipos . [39]

Imperativo y estructurado

ECMAScript JavaScript es compatible con la programación estructurada de estilo C. Anteriormente, JavaScript solo admitía el alcance de funciones mediante la palabra clave var, pero ECMAScript 2015 agregó las palabras clave lety constpermitía que JavaScript admitiera tanto el alcance de bloques como el alcance de funciones. JavaScript admite la inserción automática de punto y coma , lo que significa que los puntos y comas que se utilizan normalmente para terminar una declaración en C pueden omitirse en JavaScript. [40]

Al igual que las lenguas de tipo C, el flujo de control se realiza con los while, for, do/while, if/else, y switchdeclaraciones. Las funciones están escritas débilmente y pueden aceptar y devolver cualquier tipo. Los argumentos no proporcionados se establecen de forma predeterminada en undefined.

Débilmente mecanografiado

ECMAScript tiene un tipo de letra débil . Esto significa que ciertos tipos se asignan implícitamente en función de la operación que se realiza. Sin embargo, existen varias peculiaridades en la implementación de JavaScript de la conversión de una variable de un tipo a otro. Estas peculiaridades han sido el tema de una charla titulada Wat . [41] [42]

Dinámica

ECMAScript se escribe dinámicamente. Por tanto, un tipo se asocia con un valor en lugar de una expresión. ECMAScript admite varias formas de probar el tipo de objetos, incluida la escritura de pato . [43]

Transpiling

Desde ES 2015, transpilar JavaScript se ha vuelto muy común. La transpilación es una compilación de fuente a fuente en la que se utilizan versiones más nuevas de JavaScript y un transpilador reescribe el código fuente para que sea compatible con los navegadores más antiguos. Por lo general, los transpilers se transfieren a ES3 para mantener la compatibilidad con todas las versiones de los navegadores. Los ajustes para transpilar a una versión específica se pueden configurar según las necesidades. El transpilado agrega un paso adicional al proceso de construcción y, a veces, se realiza para evitar la necesidad de polyfills.. Polyfills crea nuevas funciones para entornos más antiguos que carecen de ellas. Polyfills hace esto en tiempo de ejecución en el intérprete, como el navegador del usuario o en el servidor. En cambio, la transpiración reescribe el código ECMA durante la fase de construcción del desarrollo antes de que llegue al intérprete.

Conformidad

En 2010, Ecma International comenzó a desarrollar una prueba de estándares para Ecma 262 ECMAScript. [44] Test262 es un conjunto de pruebas de conformidad de ECMAScript que se puede utilizar para comprobar qué tan de cerca una implementación de JavaScript sigue la Especificación de ECMAScript. El conjunto de pruebas contiene miles de pruebas individuales, cada una de las cuales prueba algunos requisitos específicos de la especificación ECMAScript. El desarrollo de Test262 es un proyecto del Comité Técnico 39 de Ecma (TC39). El marco de prueba y las pruebas individuales son creados por organizaciones miembro de TC39 y contribuyeron a Ecma para su uso en Test262.

Google (Sputnik testuite) y Microsoft hicieron contribuciones importantes, quienes contribuyeron con miles de pruebas. El conjunto de pruebas Test262 constaba de38 014 pruebas a enero de 2020 . [45] Las especificaciones de ECMAScript a través de ES7 están bien soportadas en los principales navegadores web . La siguiente tabla muestra la tasa de conformidad de las versiones actuales de software con respecto a las ediciones más recientes de ECMAScript.

Ver también

  • Comparación de motores JavaScript
  • ECMAScript para XML (E4X)
  • JavaScript
  • JScript
  • Lista de motores ECMAScript

Referencias

  1. ^ Stefanov, Stoyan (2010). Patrones de JavaScript . O'Reilly Media, Inc. pág. 5. ISBN 9781449396947. Consultado el 12 de enero de 2016 . El lenguaje de programación central de JavaScript se [...] basa en el estándar ECMAScript , o ES para abreviar.
  2. ^ Wirfs-Brock, Allen; Eich, Brendan (2020). "JavaScript: Los primeros 20 años" . Actas del ACM sobre lenguajes de programación . 4 : 1–189. doi : 10.1145 / 3386327 . S2CID 219603695 . 
  3. ^ https://tc39.es/ecma262/
  4. Krill, Paul (23 de junio de 2008). "El creador de JavaScript reflexiona sobre el pasado, el futuro" . InfoWorld . Consultado el 31 de octubre de 2013 .
  5. ^ "Netscape y Sun anuncian JavaScript, el lenguaje de secuencias de comandos de objetos abierto y multiplataforma para redes empresariales e Internet" . Netscape. 1995-12-04. Archivado desde el original el 6 de junio de 2002 . Consultado el 4 de noviembre de 2019 .
  6. ^ "Líderes de la industria para avanzar en la estandarización de JavaScript de Netscape en la reunión del organismo de estándares" . Netscape. 15 de noviembre de 1996. Archivado desde el original el 3 de diciembre de 1998 . Consultado el 31 de octubre de 2013 .
  7. ^ "¿Habrá un sufijo de archivo sugerido para es4?" . Mail.mozilla.org. 2006-10-03. Archivado desde el original el 21 de junio de 2020 . Consultado el 5 de mayo de 2021 .
  8. ^ Maffeis, Sergio; Mitchell, John C .; Taly, Ankur. "Una semántica operativa para JavaScript" (PDF) . Asociación de Maquinaria Informática .
  9. ^ a b c "Especificación del idioma ECMAScript 2021" . Ecma International . Junio ​​de 2021.
  10. ^ "Cambios en JavaScript, parte 1: EcmaScript 5" . YouTube. 2009-05-18 . Consultado el 31 de octubre de 2013 .
  11. ^ a b "Especificación del idioma ECMAScript 2015" . Ecma International . Junio ​​de 2015.
  12. ^ a b c "Especificación del idioma ECMAScript 2016" . Ecma International . Junio ​​de 2016.
  13. ^ a b c "Especificación del idioma ECMAScript 2017" . Ecma International . Junio ​​de 2017.
  14. ^ a b c "Especificación del idioma ECMAScript 2018" . Ecma International . Junio ​​de 2018.
  15. ^ a b c "Especificación del idioma ECMAScript 2019" . Ecma International . Junio ​​de 2019.
  16. ^ a b c "Especificación del idioma ECMAScript 2020" . Ecma International . Junio ​​de 2020.
  17. ^ Notas de la reunión del 24 de marzo de 2015 . ESDiscutir. Consulte también los Estándares retirados de Ecma . ECMA.
  18. ^ "Documento de descripción general de ES4 lanzado" . Mail.mozilla.org . Consultado el 31 de octubre de 2013 .
  19. ^ "La verdadera historia detrás de ECMAScript 4" .
  20. ^ "Propuesta 4ª edición de ECMAScript - Descripción general del idioma" (PDF) . ecmascript.org . 23 de octubre de 2007. Archivado desde el original (PDF) el 13 de julio de 2010.
  21. ^ John Resig. "John Resig - Corrección de errores en JavaScript 2" . Ejohn.org . Consultado el 31 de octubre de 2013 .
  22. ^ "Compatibilidad entre ES3 y ES4 propuesto" (PDF) . Ecmascript.org. Archivado desde el original (PDF) el 24 de julio de 2014 . Consultado el 31 de octubre de 2013 .
  23. ^ "Especificación del lenguaje ECMAScript" (PDF) . Ecma International . 2009-04-19. Archivado desde el original (PDF) el 19 de abril de 2009 . Consultado el 19 de marzo de 2018 .
  24. ^ "ECMAScript 3 y más allá - IEBlog - Inicio del sitio - Blogs de MSDN" . Blogs.msdn.com. 2007-10-30 . Consultado el 31 de octubre de 2013 .
  25. ^ "Lo que pienso de ES4. - ¡Albatros! - Inicio del sitio - Blogs de MSDN" . Blogs.msdn.com. 2007-10-31 . Consultado el 31 de octubre de 2013 .
  26. ^ "Carta abierta a Chris Wilson" . Brendan Eich. 2007-10-31 . Consultado el 31 de octubre de 2013 .
  27. ^ "JavaScript 2 y la Web abierta" . 2007-11-20 . Consultado el 20 de enero de 2014 .
  28. ^ "Armonía de ECMAScript" . Mail.mozilla.org . Consultado el 31 de octubre de 2013 .
  29. ^ "Un hito importante en la estandarización de JavaScript - Blog de JScript - Inicio del sitio - Blogs de MSDN" . Blogs.msdn.com. 2009-04-09 . Consultado el 31 de octubre de 2013 .
  30. ^ "Ecma International finaliza una revisión importante de ECMAScript" . Ecma International. 2009-04-09 . Consultado el 22 de mayo de 2009 .
  31. ^ "Noticias anteriores de Ecma" . Ecma-international.org . Consultado el 29 de marzo de 2020 .
  32. ^ Krill, Paul. "Es oficial: ECMAScript 6 está aprobado" . InfoWorld . Consultado el 19 de marzo de 2018 .
  33. ^ "5 grandes características en EcmaScript 6 (armonía de ES6) - Wintellect" . Wintellect . 2014-03-24. Archivado desde el original el 22 de julio de 2017 . Consultado el 19 de marzo de 2018 .
  34. ^ "ECMAScript 6 (ES6): Novedades de la próxima versión de JavaScript" . Revista Smashing . 2015-10-28 . Consultado el 19 de marzo de 2018 .
  35. ^ "ECMAScript 6: nuevas funciones: descripción general y comparación" . es6-features.org . Consultado el 19 de marzo de 2018 .
  36. ^ "Estándar ECMA-262 6ª edición / junio de 2015 ECMAScript 2015 Especificación de idioma 14.2 Definiciones de función de flecha" . www.ecma-international.org . 2015.
  37. Saboff, Michael (23 de mayo de 2016). "Llamadas de cola adecuadas de ECMAScript 6 en WebKit" . WebKit . Consultado el 11 de abril de 2019 .
  38. ^ "ECMAScript 2017 (ES8): el conjunto de características final" . 2ality . Consultado el 23 de abril de 2018 .
  39. ^ "Acerca de" . ECMAScript. Archivado desde el original el 2 de agosto de 2012 . Consultado el 17 de diciembre de 2009 .
  40. ^ David Flanagan (17 de agosto de 2006). JavaScript: la guía definitiva: la guía definitiva . "O'Reilly Media, Inc.". pag. 16. ISBN 978-0-596-55447-7.
  41. ^ Bernhardt, Gary. Wat . CodeMash 2012. Destruye todo el software .
  42. ^ Gilbertson, Scott (26 de enero de 2012). "Bromas para nerds: Wat Moments en programación" . Cableado . Consultado el 22 de agosto de 2021 .
  43. ^ "Tipos de datos de JavaScript y estructuras de datos - JavaScript | MDN" . Developer.mozilla.org . 2017-02-16 . Consultado el 24 de febrero de 2017 .
  44. ^ "Lenguaje ECMAScript - test262" . Test262.ecmascript.org. Archivado desde el original el 14 de mayo de 2011 . Consultado el 31 de octubre de 2013 .
  45. ^ "tc39 / test262" . GitHub . 24 de enero de 2020 . Consultado el 29 de enero de 2020 .
  46. ^ ES5 es la línea de base para este conjunto de pruebas. La tasa de conformidad para otras ediciones refleja la compatibilidad con nuevas funciones únicamente, no una puntuación completa.
  47. ^ "Tabla de compatibilidad de ECMAScript 5" . kangax.github.io . Consultado el 8 de noviembre de 2018 .
  48. ^ "Tabla de compatibilidad de ECMAScript 6" . kangax.github.io . Consultado el 8 de noviembre de 2018 .
  49. ^ a b "Tabla de compatibilidad de ECMAScript 2016+" . kangax.github.io . Consultado el 8 de noviembre de 2018 .
  50. ^ Puntuación compuesta que incluye nuevas funciones desde ES7 hasta los borradores de la próxima edición

enlaces externos

Normas ISO

  • ISO 16262

Estándares ECMA

  • Especificación del lenguaje ECMAScript ECMA-262
    • 3a edición, diciembre de 1999: PDF
    • Edición 3 final, marzo de 2000: PDF
    • 4ta edición (descripción general): PDF
    • 4ta edición (borrador final): HTML , PDF
    • Quinta edición, diciembre de 2009: PDF
    • 5.1 Edición, junio de 2011: HTML , PDF
    • 6.a edición, junio de 2015 (Especificación del idioma ECMAScript 2015): HTML , PDF
    • 7a edición, junio de 2016 (Especificación del idioma ECMAScript 2016): HTML , PDF
    • 8.a edición, junio de 2017 (Especificación del idioma ECMAScript 2017): HTML , PDF
    • 9a edición, junio de 2018 (Especificación de idioma ECMAScript 2018): HTML , PDF
    • 10a edición, junio de 2019 (Especificación de idioma ECMAScript 2019): HTML , PDF
    • 11a edición, junio de 2020 (Especificación de idioma ECMAScript 2020): HTML , PDF
    • 12a edición, junio de 2021 (ECMAScript 2021 Language Specification): HTML , PDF
  • Especificación de componentes ECMAScript ECMA-290 (junio de 1999)
  • ECMA-327 ECMAScript 3rd Edition Compact Profile (junio de 2001)
  • ECMA-357 ECMAScript para XML (E4X) Especificación (junio de 2004)
Obtenido de " https://en.wikipedia.org/w/index.php?title=ECMAScript&oldid=1040653436#ES2015 "