Está en la página 1de 6

ECMAScript

ECMAScript es una especificación de lenguaje de


programación publicada por ECMA International. El
desarrollo empezó en 1996 y estuvo basado en el
ECMAScript
popular lenguaje JavaScript propuesto como Brendan Eich
estándar por Netscape Communications https://ecma-international.org/
Corporation. Actualmente está aceptado como el
estándar ISO/IEC 22275:2018. Información general
Extensiones es
ECMAScript define un lenguaje de tipos dinámicos comunes
ligeramente inspirado en Java y otros lenguajes del Paradigma Multiparadigma: prototipado,
estilo de C. Soporta algunas características de la funcional, imperativo
programación orientada a objetos mediante objetos
basados en prototipos y pseudoclases. Apareció en 01 de enero de 1997 (25
años, 8 meses y 11 días)
La mayoría de navegadores de Internet incluyen una Diseñado por Brendan Eich, Ecma
implementación del estándar ECMAScript, al igual International
que un acceso al Document Object Model para Implementaciones SpiderMonkey, V8,
manipular páginas web. JavaScript está
ActionScript, JScript,
implementado en la mayoría de navegadores,
QtScript, InScript
Internet Explorer de Microsoft usa JScript. El
navegador Opera tenía su propio intérprete de Influido por Self, HyperTalk, AWK, C,
ECMAScript con extensiones para soportar algunas Perl, Python, Java, Scheme
características de JavaScript y JScript,
actualmente Opera está basado en Chromium (y
utiliza su intérprete). Cada navegador tiene ECMAScript
extensiones propias al estándar ECMAScript,
pero cualquier código que se adecúe al estándar
debería funcionar en todos ellos.

ActionScript, para Adobe Flash, también está


basado en el estándar ECMAScript, con mejoras Desarrollador
que permiten mover, crear y analizar Sun Microsystems,

dinámicamente objetos, mientras la película está Ecma International


en ejecución.
ECMA-262 (http://www.ecma-international.org/
Desde el lanzamiento en junio de 1997 del publications/standards/Ecma-262.htm),
estándar ECMAScript 1, han existido las ECMA-290 (http://www.ecma-international.org/
versiones 2, 3 y 5, que es la más usada publications/standards/Ecma-290.htm),
actualmente (la 4 se abandonó2 ​). En junio de ECMA-327 (http://www.ecma-international.org/
2015 se cerró y publicó la versión ECMAScript publications/standards/Ecma-327.htm),
6.3 ​ ECMA-357 (http://www.ecma-international.org/
publications/standards/Ecma-357.htm),
[http://www.ecma-
international.org/publications/standards/Ecma-
Índice 404.htm
Historia
Versiones
ECMA-404

11.ª edición – ECMAScript 2020


ES.NEXT
]
Véase también Información general
Referencias Extensión de .es
Enlaces externos archivo
Tipo de MIME application/ecmascript
Lanzamiento 1 de junio de 1997 (25 años, 3
Historia inicial meses y 11 días)
Última versión Edición 7ª
ECMAScript es una especificación estándar de un
1 de junio de 2016 (6 años, 3
lenguaje desarrollado por Brendan Eich,
meses y 11 días)1 ​
empleado en Netscape; inicialmente se llamaba
Mocha, luego LiveScript, y finalmente Tipo de Lenguaje de scripting
Javascript.4 ​ En diciembre de 1995, Sun formato
Microsystems y Netscape anunciaron JavaScript Extendido de JavaScript y JScript
en una conferencia de prensa.5 ​ En marzo de Formato ?
1996, Netscape Navigator 2.0 fue lanzado con abierto
soporte para JavaScript.

Debido al gran éxito de Javascript como lenguaje de scripting del lado del cliente para páginas web,
Microsoft desarrolló un dialecto compatible del lenguaje, llamado JScript, para evitar problemas legales con
la marca. JScript agregó nuevos métodos para las fechas, para aliviar los problemas del año 2000 (Y2K),
causados en parte porque los métodos de Javascript estaban basados en las clases Date de Java.6 ​ JScript
fue incluido en Internet Explorer 3.0, lanzado en agosto de 1996.

Netscape envió el borrador de JavaScript a Ecma International para su estandarización y para que
trabajasen sobre su especificación ECMA-262, que comenzó en noviembre de 1996.7 ​ La primera edición
de ECMA-262 fue adoptada por asamblea general de Ecma en junio de 1997. Varias ediciones del lenguaje
estándar han sido publicadas desde entonces. El nombre "ECMAScript" fue un compromiso entre las
organizaciones involucradas en la estandarización del lenguaje, especialmente entre Netscape y Microsoft,
que se disputaron el dominio de las primeras sesiones estándar. Eich comentó que "ECMAScript fue
siempre un nombre de marca indeseado, que sonaba como una enfermedad de la piel."8 ​

A pesar de que ambas especificaciones, tanto JavaScript y JScript, apuntan a ser compatibles con
ECMAScript, también proveen características adicionales, no descritas en la especificaciones de ECMA.
[cita requerida]

Versiones

Hay once versiones de ECMA-262 publicadas. El trabajo sobre la versión 11 del estándar fue finalizada en
junio de 2020.9 ​

Allen Wirfs-Brock: ECMA-262, Project Editor, 6th Edition & Brian Terlson: ECMA-262, Project Editor,
7th through 10th Editions 10 ​
Fecha de
Edición Cambios desde la edición anterior Editor
publicación
Junio de Guy L.
1 Primera edición
1997 Steele, Jr.
Junio de Cambios editoriales para mantener la especificación completa alineada Mike
2
1998 con el estándar internacional ISO/IEC 16262 Cowlishaw
Se agregaron expresiones regulares, mejor manejo de strings, nuevo
Diciembre control de declaraciones, manejo de excepciones con try/catch, Mike
3
de 1999 definición más estricta de errores, formato para la salida numérica y Cowlishaw
otras mejoras.
La cuarta edición fue abandonada debido a diferencias políticas respecto
a la complejidad del lenguaje. Muchas características propuestas para la
4 Abandonado
cuarta edición fueron completamente abandonadas; algunas fueron
propuestas para la edición ECMAScript Harmony.
Agrega el modo estricto ("strict mode"), un subconjunto destinado a
proporcionar una mejor comprobación de errores y evitar constructores
Pratap
propensos a errores. Aclara varias ambigüedades de la tercera edición, y
Lakshman,
Diciembre afina el comportamiento de las implementaciones del "mundo real" que
5 Allen
de 2009 difieren consistentemente desde esa especificación. Agrega algunas
Wirfs-
nuevas características, como getters y setters, librería para el soporte
Brock
de JSON, y una más completa reflexión sobre las propiedades de los
objetos.11 ​
Pratap
Esta edición 5.1 de la ECMAScript Standard está completamente Lakshman,
Junio de
5.1 alineada con la tercera edición del estándar internacional ISO/IEC Allen
2011
16262:2011. Wirfs-
Brock
La sexta edición agrega cambios significativos en la sintaxis para
escribir aplicaciones complejas, incluyendo clases y módulos,
definiéndolos sémanticamente en los mismos términos del modo estricto
de la edición ECMAScript 5. Otras nuevas características incluyen Allen
Junio de
6 12 iteradores for/of loops, generadores y generador de expresiones estilo Wirfs-
2015 ​ Brock
Python, funciones de dirección, datos binarios, colecciones (mapas,
sets, mapas débiles), y proxies (metaprogramación para objetos
virtuales y wrappers). Al ser la primera especificación “ECMAScript
Harmony”, es también conocida como “ES6 Harmony”.
Junio de La séptima edición fue una mera actualización de la versión 6. Incorpora Brian
7
2016 el método Array.prototype.includes() y el operador exponencial (**). Terlson
La 8ª edición, oficialmente conocida como ECMAScript 2017, fue
Junio de Brian
8 finalizada en junio de 2017.[11] Incluye constructores async/await ,
2017 Terlson
los cuales funcionan usando generadores y promesas.
La 9.ª edición, oficialmente conocida como ECMAScript 2018, incluye
Junio de operadores rest/spread para variables (tres puntos: Brian
9
2018 ...identificador), iteracion asincronica, Terlson
Promise.prototype.finally()

La 10.ª edición, oficialmente conocida como ECMAScript 2019,


Enero de incorporó Array.flat(), Array.flatMap(), Mathías
10
2019 String.trimStart(), String.trimEnd(), errores opcionales en Bynens
el bloque catch, Object.fromEntries(), Symbol.description

Jordan
Harband,
11 Junio 2020 Ver 11.ª edición – ECMAScript 2020
Kevin
Smith
Ver 12.ª ECMAScript® 2021 (https://www.ecma-international.org/publicati
12 Junio 2021
ons-and-standards/standards/ecma-262/)
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 – conocida como ES-CP, o ECMA 327 – que fue diseñado para dispositivos con
recursos limitados, pero se descartó y la retiraron en 2015.13 ​

11.ª edición – ECMAScript 2020

La 11.ª edición, o ECMAScript 2020, fue publicada en junio de 2020. Además de nuevas funcionalidades,
esta versión incluye el tipo primitivo BigInt para enteros de tamaño arbitrario primitive, el operador de
unión nula (en inglés, nullish coalescing), el encadenamiento opcional (en inglés, optional chaining) y el
objeto globalThis.

Los BigInit se crean con el constructor BigInt 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 mayores que
Number.MAX_SAFE_INTEGER, mientras que los números está representados por un valor IEEE 754
de 64 bits de doble precisión. Las funciones integradas en Math no son compatibles con BigInits; por
ejemplo, la potencia de BigInts debe realizarse con el operador ** en lugar de Math.pow.

El operador de unión nula, ??, devuelve su operando del lado derecho cuando su lado izquierdo es null
or undefined. Esto contrasta con el operador ||, que devolverá "string" para todos los valores
"falsy", como los que se muestran a continuación:

undefined ?? "string" // -> "string"

null ?? "string" // "string"

false ?? "string" // -> false

NaN ?? "string" // -> NaN

El encadenamiento opcional te permite 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, zipcode será
undefined.

Con el globalThis podes escribir código que funcione en contexto de ventana y no ventana sin la necesidad
de chequeos extra.

ES.NEXT

ES.Next es un nombre dinámico para referirse a cualquier próxima versión que se esté desarrollando. Las
características de ES.Next son conocidas más correctamente como propuestas, porque, por definición, la
especificación no ha sido aún finalizada.

Véase también
JavaScript
JScript
ActionScript
XML
Dart

Referencias
1. Standard ECMA-262: ECMAScript® 2016 Language Specification (http://www.ecma-internat
ional.org/publications/standards/Ecma-262.htm) (en inglés). Consultado el 13 de enero de
2017.
2. Eich, Brendan (13 de agosto de 2008). «ECMAScript Harmony» (https://mail.mozilla.org/pip
ermail/es-discuss/2008-August/003400.html). Consultado el 22 de julio de 2015.
3. campusMVP (19 de junio de 2015). «ECMAScript 6 es ya un estándar cerrado» (http://www.
campusmvp.es/recursos/post/ECMAScript-6-es-ya-un-estandar-cerrado.aspx). Consultado
el 22 de julio de 2015.
4. Krill, Paul (23 de junio de 2008). «JavaScript creator ponders past, future | Developer
World» (http://www.infoworld.com/article/2653798/application-development/javascript-creato
r-ponders-past--future.html). InfoWorld. Consultado el 31 de octubre de 2013.
5. «Press Release» (https://web.archive.org/web/20070916144913/http://wp.netscape.com/ne
wsref/pr/newsrelease67.html). Web.archive.org. Archivado desde el original (http://wp.netsca
pe.com/newsref/pr/newsrelease67.html) el 16 de septiembre de 2007. Consultado el 31 de
octubre de 2013.
6. «Brendan's Roadmap Updates: Popularity» (https://web.archive.org/web/20080517011912/h
ttp://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html).
weblogs.mozillazine.org. Archivado desde el original (http://weblogs.mozillazine.org/roadma
p/archives/2008/04/popularity.html) el 17 de mayo de 2008.
7. «Press Release» (https://web.archive.org/web/19981203070212/http://cgi.netscape.com/ne
wsref/pr/newsrelease289.html). Web.archive.org. Archivado desde el original (http://cgi.netsc
ape.com/newsref/pr/newsrelease289.html) el 3 de diciembre de 1998. Consultado el 31 de
octubre de 2013.
8. «Will there be a suggested file suffix for es4?» (https://web.archive.org/web/2020062120232
1/https://mail.mozilla.org/pipermail/es-discuss/2006-October/000133.html). Mail.mozilla.org.
3 de octubre de 2006. Archivado desde el original (https://mail.mozilla.org/pipermail/es4-disc
uss/2006-October/000133.html) el 21 de junio de 2020. Consultado el 31 de octubre de
2013.
9. [1] (http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf) Archivado
(https://web.archive.org/web/20150412040502/http://www.ecma-international.org/publication
s/files/ECMA-ST/Ecma-262.pdf) el 12 de abril de 2015 en Wayback Machine.. EMCAScript.
Retrieved on 2015-06-19.
10. «ECMA-260 10th Edition» (https://www.ecma-international.org/ecma-262/10.0/index.html#se
c-ecmascript-language-source-code).
11. «Changes to JavaScript, Part 1: EcmaScript 5» (https://www.youtube.com/watch?v=Kq4FpM
e6cRs). YouTube. 18 de mayo de 2009. Consultado el 31 de octubre de 2013.
12. «It's official: ECMAScript 6 is approved - InfoWorld» (http://www.infoworld.com/article/29377
16/javascript/its-official-ecmascript-6-is-approved.html). www.infoworld.com (en inglés).
Consultado el 20 de octubre de 2015.
13. 2015-03-24 Meeting Notes (https://esdiscuss.org/notes/2015-03-24). ESDiscuss. Also see
Ecma withdrawn Standards (http://www.ecma-international.org/publications/standards/Stand
ardwithdrawn.htm). ECMA.

Enlaces externos
Especificación del lenguaje ECMAScript (http://www.ecma-international.org/publications/sta
ndards/Ecma-262.htm)
ECMAScript 6 es ya un estándar cerrado (http://www.campusmvp.es/recursos/post/ECMASc
ript-6-es-ya-un-estandar-cerrado.aspx)
Tabla de compatibilidad de navegadores con ECMAScript 6 (http://kangax.github.io/compat-
table/es6/)
Historia de ECMA (http://www.ecma-international.org/memento/history.htm) (en inglés).
ISO/IEC 22275:2018 (https://www.iso.org/standard/73002.html) (en inglés).

Obtenido de «https://es.wikipedia.org/w/index.php?title=ECMAScript&oldid=145779025»

Esta página se editó por última vez el 5 sep 2022 a las 04:18.

El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0;
pueden aplicarse
cláusulas adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.

También podría gustarte