Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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()
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
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:
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.