Ir al contenido
Menú principal
Menú principal
mover a la barra lateral
ocultar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Buscar
Buscar
español
Apariencia
Crear una cuenta
Acceder
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Editando
ECMAScript
(sección)
Página
Discusión
español
Leer
Editar
Editar código
Ver historial
Herramientas
Herramientas
mover a la barra lateral
ocultar
Acciones
Leer
Editar
Editar código
Ver historial
General
Lo que enlaza aquí
Cambios relacionados
Información de la página
Apariencia
mover a la barra lateral
ocultar
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
== Historia == ECMAScript es una especificación estándar de un lenguaje desarrollado por [[Brendan Eich]], empleado en [[Netscape]]; inicialmente se llamaba Mocha, luego LiveScript, y finalmente Javascript.<ref>{{cita web|apellido=Krill |nombre=Paul |url=http://www.infoworld.com/article/2653798/application-development/javascript-creator-ponders-past--future.html |título=JavaScript creator ponders past, future | Developer World |editorial=InfoWorld |fecha=23 de junio de 2008 |fechaacceso=31 de octubre de 2013}}</ref> En diciembre de 1995, Sun Microsystems y Netscape anunciaron JavaScript en una conferencia de prensa.<ref>{{cita web |url=http://wp.netscape.com/newsref/pr/newsrelease67.html |urlarchivo=https://web.archive.org/web/20070916144913/http://wp.netscape.com/newsref/pr/newsrelease67.html |fechaarchivo=16 de septiembre de 2007 |título=Press Release |editorial=Web.archive.org |fecha= |fechaacceso=31 de octubre de 2013 }}</ref> En marzo de 1996, [[Netscape Navigator]] 2.0 fue lanzado con 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.<ref>{{cita web|url=http://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html|urlarchivo=https://web.archive.org/web/20080517011912/http://weblogs.mozillazine.org/roadmap/archives/2008/04/popularity.html|fechaarchivo=17 de mayo de 2008|título=Brendan's Roadmap Updates: Popularity<!-- Bot generated title -->|obra=weblogs.mozillazine.org}}</ref> 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.<ref>{{cita web |url=http://cgi.netscape.com/newsref/pr/newsrelease289.html |urlarchivo=https://web.archive.org/web/19981203070212/http://cgi.netscape.com/newsref/pr/newsrelease289.html |fechaarchivo=3 de diciembre de 1998 |título=Press Release |editorial=Web.archive.org |fecha= |fechaacceso=31 de octubre de 2013 }}</ref> 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."<ref>{{cita web |url=https://mail.mozilla.org/pipermail/es4-discuss/2006-October/000133.html |título=Will there be a suggested file suffix for es4? |editorial=Mail.mozilla.org |fecha=3 de octubre de 2006 |fechaacceso=31 de octubre de 2013 |fechaarchivo=21 de junio de 2020 |urlarchivo=https://web.archive.org/web/20200621202321/https://mail.mozilla.org/pipermail/es-discuss/2006-October/000133.html |deadurl=yes }}</ref> 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. {{Citation needed|date=July 2012}} === Versiones === {{desactualizado}} Hay once versiones de ECMA-262 publicadas. El trabajo sobre la versión 11 del estándar fue finalizada en junio de 2020.<ref name="auto">[http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf] {{Wayback|url=http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf|date=20150412040502}}. EMCAScript. Retrieved on 2015-06-19.</ref> Allen Wirfs-Brock: ECMA-262, Project Editor, 6th Edition & Brian Terlson: ECMA-262, Project Editor, 7th through 10th Editions<ref>{{Cita web|url=https://www.ecma-international.org/ecma-262/10.0/index.html#sec-ecmascript-language-source-code|título=ECMA-260 10th Edition}}</ref> {| class="wikitable" |- style="background:#ccf;" ! Edición ! Fecha de publicación ! Cambios desde la edición anterior ! Editor |- | 1 | Junio de 1997 | Primera edición | [[Guy L. Steele, Jr.]] |- | 2 | Junio de 1998 | Cambios editoriales para mantener la especificación completa alineada con el estándar internacional ISO/IEC 16262 | [[Mike Cowlishaw]] |- | 3 | Diciembre de 1999 | Se agregaron expresiones regulares, mejor manejo de strings, nuevo control de declaraciones, manejo de excepciones con try/catch, definición más estricta de errores, formato para la salida numérica y otras mejoras. | Mike Cowlishaw |- | 4 | Abandonado | La cuarta edición fue abandonada debido a diferencias políticas respecto a la complejidad del lenguaje. Muchas características propuestas para la cuarta edición fueron completamente abandonadas; algunas fueron propuestas para la edición ECMAScript Harmony. | |- | 5 | Diciembre de 2009 | Agrega el modo estricto ("strict mode"), un subconjunto destinado a proporcionar una mejor comprobación de errores y evitar constructores propensos a errores. Aclara varias ambigüedades de la tercera edición, y afina el comportamiento de las implementaciones del "mundo real" que difieren consistentemente desde esa especificación. Agrega algunas nuevas características, como getters y setters, librería para el soporte de [[JSON]], y una más completa [[reflexión (informática)|reflexión]] sobre las propiedades de los objetos.<ref>{{cite web|url=http://www.youtube.com/watch?v=Kq4FpMe6cRs |title=Changes to JavaScript, Part 1: EcmaScript 5 |publisher=YouTube |date=18 de mayo de 2009 |accessdate=31 de octubre de 2013}}</ref> | [[Pratap Lakshman]], [[Allen Wirfs-Brock]] |- | 5.1 | Junio de 2011 | Esta edición 5.1 de la ECMAScript Standard está completamente alineada con la tercera edición del estándar internacional ISO/IEC 16262:2011. | Pratap Lakshman, Allen Wirfs-Brock |- | 6 | Junio de 2015<ref>{{Cita web |url=http://www.infoworld.com/article/2937716/javascript/its-official-ecmascript-6-is-approved.html |título=It's official: ECMAScript 6 is approved - InfoWorld |fechaacceso=20 de octubre de 2015 |sitioweb=www.infoworld.com |idioma=en}}</ref> | 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 iteradores <tt>for</tt>/<tt>of</tt> loops, generadores y generador de expresiones estilo [[Python (lenguaje de programación)|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”. | Allen Wirfs-Brock |- | 7 <!-- Lo que se describe aquí era una previsión, ya que al final la versión 7 fue una mera actualización pequeña de la versión 6--> | Junio de 2016 | La séptima edición fue una mera actualización de la versión 6. Incorpora el método Array.prototype.includes() y el operador exponencial (**). |Brian Terlson |- |8 |Junio de 2017 |La 8.ª edición, oficialmente conocida como ECMAScript 2017, fue finalizada en junio de 2017.<sup id="cite_ref-ES2017_11-1" class="reference">[11]</sup> Incluye constructores <code>async/await</code> , los cuales funcionan usando generadores y promesas. |Brian Terlson |- |9 |Junio de 2018 |La 9.ª edición, oficialmente conocida como ECMAScript 2018, incluye operadores rest/spread para variables (tres puntos: <code>...identificador</code>), iteracion asincronica, <code>Promise.prototype.finally()</code> |Brian Terlson |- |10 |Enero de 2019 |La 10.ª edición, oficialmente conocida como ECMAScript 2019, incorporó <code>Array.flat()</code>, <code>Array.flatMap()</code>, <code>String.trimStart(), String.trimEnd()</code>, errores opcionales en el bloque catch, <code>Object.fromEntries()</code>, <code>Symbol.description</code> |Mathías Bynens |- |11 |Junio 2020 |Ver [[#ES2020|11.ª edición – ECMAScript 2020]] |Jordan Harband, Kevin Smith |- |12 |Junio 2021 |Ver 12.ª [https://www.ecma-international.org/publications-and-standards/standards/ecma-262/ ECMAScript® 2021] | |- |13 |Junio 2022 |Estas son las nuevas características de esta versión de ECMAScript: # Top-level await: Permite el uso del operador <code>await</code> fuera de las funciones asíncronas, en el nivel superior de los módulos. # Private instance fields, methods, and accessors: Permite declarar campos de instancia, métodos y accesorios (getters y setters) como privados en las clases, lo que mejora el encapsulamiento. # Static class fields and methods: Introduce campos y métodos estáticos en las clases. # Static class initialization blocks: Introduce bloques de inicialización estáticos en las clases, que se ejecutan una vez cuando se crea una clase. # Error: .cause: Permite proporcionar una causa para los errores lanzados, lo que puede ayudar a rastrear la causa original de un error. # Array, String, and TypedArray: .at() Method: Introduce un nuevo método <code>.at()</code> para los objetos Array, String, y TypedArray, que permite acceder a los elementos de estos objetos desde el final si se pasan índices negativos. # Object: .hasOwn(): Introduce un nuevo método <code>.hasOwn()</code> para los objetos, que permite comprobar si un objeto tiene una propiedad propia (no heredada). # RegExp: match .índices ('d' flag): Permite obtener los índices de inicio y fin de las coincidencias al realizar operaciones de búsqueda con expresiones regulares.<ref>{{Cita web|url=https://dev.to/brayanarrieta/new-javascript-features-ecmascript-2022-with-examples-4nhg|título=New JavaScript Features ECMAScript 2022 (with examples)|fechaacceso=2023-05-21|fecha=2022-06-27|sitioweb=DEV Community|idioma=en}}</ref> |Shu-yu Guo, Michael Ficarra y Kevin Gibbons<ref>{{Cita web|url=https://2ality.com/2022/06/ecmascript-2022.html|título=Ecma International approves ECMAScript 2022: What’s new?|fechaacceso=2023-05-21|sitioweb=2ality.com|idioma=en-US}}</ref> |} 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.<ref name="ES-CP-withdrawn">[https://esdiscuss.org/notes/2015-03-24 2015-03-24 Meeting Notes]. ESDiscuss. Also see [http://www.ecma-international.org/publications/standards/Standardwithdrawn.htm Ecma withdrawn Standards]. ECMA.</ref> {{anchor|ES2020}} ==== 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 <code>BigInt</code> para enteros de tamaño arbitrario primitive, el operador de unión nula (en inglés, <span lang="en" dir="ltr">''nullish coalescing''</span>), el encadenamiento opcional (en inglés, <span lang="en" dir="ltr">''optional chaining''</span>) y el objeto <code>globalThis</code>. Los BigInit se crean con el constructor <code>BigInt</code> o con la sintaxis <code>10n</code>, donde "n" se coloca después del número literal. BigInts permite la representación y manipulación de enteros mayores que <code>Number.MAX_SAFE_INTEGER</code>, mientras que los números está representados por un valor IEEE 754 de 64 bits de doble precisión. Las funciones integradas en <code>Math</code> no son compatibles con BigInits; por ejemplo, la potencia de BigInts debe realizarse con el operador <code>**</code> en lugar de <code>Math.pow</code>. El operador de unión nula, <code>??</code>, devuelve su operando del lado derecho cuando su lado izquierdo es <code>null</code> or <code>undefined</code>. Esto contrasta con el operador <code>||</code>, que devolverá <code>"string"</code> 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 <code>const zipcode = person?.address?.zipcode</code>. Si alguna de las propiedades no está presente, <code>zipcode</code> será <code>undefined</code>. Con el globalThis podés 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. <br />
Resumen:
Al guardar los cambios aceptas los
términos de uso
y liberas de forma irrevocable tu contribución conforme a los términos de las licencias
licencia CC BY-SA 4.0
y
GFDL
. Aceptas igualmente que un hipervínculo o URL es atribución suficiente conforme a la licencia Creative Commons.
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Esta página pertenece a 1 categoría oculta:
Categoría:Wikipedia:Referenciar informática
Buscar
Buscar
Editando
ECMAScript
(sección)
Añadir idiomas
Añadir tema