ECMAScript
ECMAScript és una especificació de llenguage de programació publicada per Ecma International. El desenroll va escomençar en 1996 i va estar basat en el popular llenguage JavaScript propost com a estàndar per Netscape Communications Corporation. Actualment està acceptat com l'estàndart ISO/IEC 22275:2018.
ECMAScript definix un llenguage de tipos dinàmics llaugerament inspirat en Java i atres llenguages de l'estil de C. Soporta algunes característiques de la programació orientada a objectes per mig d'objectes basats en prototips i pseudoclases.
La majoria de navegadors d'Internet inclouen una implementació de l'estàndart ECMAScript, de la mateixa manera que un accés al Document Object Model per a manipular pàgines web. JavaScript està implementat en la majoria de navegadors, Internet Explorer de Microsoft usa JScript. El navegador Opera tenia el seu propi intérpret d'ECMAScript en extensions per a soportar algunes característiques de JavaScript i JScript, actualment Opera està basat en Chromium (i utilisa el seu intérpret). Cada navegador té extensions pròpies a l'estàndart ECMAScript, pero qualsevol còdic que s'adeque a l'estàndart deuria funcionar en tots ells.
ActionScript, per a Atobó Flash, també està basat en l'estàndart ECMAScript, en millores que permeten moure, crear i analisar dinàmicament objectes, mentres la película està en eixecució.
Des del llançament en juny de 1997 de l'estàndart ECMAScript 1, han existit les versions 2, 3 i 5, que és la més usada actualment (la 4 es va abandonar[1]). En juny de 2015 es va tancar i va publicar la versió ECMAScript 6.[2]
Història
[editar | editar còdic]ECMAScript és una especificació estàndar d'un llenguage desenrollat per Brendan Eich, amprat en Netscape; inicialment es dia Mocha, després LiveScript, i finalment Javascript.[3] En decembre de 1995, Sun Microsystems i Netscape varen anunciar JavaScript en una conferència de prensa.[4] En març de 1996, Netscape Navigator 2.0 va ser llançat en soport per a JavaScript.
Pel gran èxit de Javascript com a llenguage de scripting del costat del client per a pàgines web, Microsoft va desenrollar un dialecte compatible del llenguage, cridat JScript, per a evitar problemes llegals en la marca. JScript va agregar nous métodos per a les dates, per a aliviar els problemes de l'any 2000 (I2K), causats en part perque els métodos de Javascript estaven basats en les classes Dona't de Java.[5] JScript va ser inclós en Internet Explorer 3.0, llançat en agost de 1996.
Netscape va enviar el borrador de JavaScript a Ecma International per a la seua estandardisació i per a que treballaren sobre la seua especificació ECMA-262, que va començar en novembre de 1996.[6] La primera edició d'ECMA-262 va ser adoptada per assamblea general d'Ecma en juny de 1997. Vàries edicions del llenguage estàndar han segut publicades des de llavors. El nom "ECMAScript" va ser un compromís entre les organisacions involucrades en l'estandardisació del llenguage, especialment entre Netscape i Microsoft, que es varen disputar el domini de les primeres sessions estàndar. Eich va comentar que "ECMAScript va anar sempre un nom de marca indeseado, que sonava com una malaltia de la pell."[7]
A pesar de que abdós especificacions, tant JavaScript i JScript, apunten a ser compatibles en ECMAScript, també proveïxen característiques adicionals, no descrites en l'especificacions d'ECMA. cita requerida
Versions
[editar | editar còdic]Hi ha onze versions d'ECMA-262 publicades. El treball sobre la versió 11 de l'estàndart va ser finalisada en juny de 2020.[8]
Allen Wirfs-Brock: ECMA-262, Project Editor, 6th Edition & Brian Terlson: ECMA-262, Project Editor, 7th through 10th Editions[9]
| Edició | Data de publicació | Canvis des de l'edició anterior | Editor |
|---|---|---|---|
| 1 | Juny de 1997 | Primera edició | Guy L. Steele, Jr. |
| 2 | Juny de 1998 | Canvis editorials per a mantindre l'especificació completa alineada en l'estàndart internacional ISO/IEC 16262 | Mike Cowlishaw |
| 3 | Decembre de 1999 | Es varen agregar expressions regulars, millor maneig de strings, nou control de declaracions, maneig d'excepcions en try/catch, definició més estricta d'errors, format per a l'eixida numèrica i atres millores. | Mike Cowlishaw |
| 4 | Abandonat | La quarta edició va ser abandonada per diferències polítiques respecte a la complexitat del llenguage. Moltes característiques propostes per a la quarta edició varen ser completament abandonades; algunes varen ser propostes per a l'edició ECMAScript Harmony. | |
| 5 | Decembre de 2009 | Agrega el modo estricte ("strict mode"), un subconjunt destinat a proporcionar una millor comprovació d'errors i evitar constructors propensos a errors. Aclarix vàries ambigüitats de la tercera edició, i afina el comportament de les implementacions d'el "món real" que diferixen consistentemente des d'eixa especificació. Agrega algunes noves característiques, com getters i setters, llibreria per al soport de JSON, i una més completa reflexió sobre les propietats dels objectes.[10] | Pratap Lakshman, Allen Wirfs-Brock |
| 5.1 | Juny de 2011 | Esta edició 5.1 de la ECMAScript Standard està completament alineada en la tercera edició de l'estàndart internacional ISO/IEC 16262:2011. | Pratap Lakshman, Allen Wirfs-Brock |
| 6 | Juny de 2015[11] | La sexta edició agrega canvis significatius en la sintaxis per a escriure aplicacions complexes, incloent classes i mòduls, definint-els sémanticamente en els mateixos térmens del modo estricte de l'edició ECMAScript 5. Atres noves característiques inclouen iteradores for/of loops, generadors i generador d'expressions estil Python, funcions de direcció, senyes binarios, coleccions (mapes, sets, mapes dèbils), i proxies (metaprogramación per a objectes virtuals i wrappers). En ser la primera especificació “ECMAScript Harmony”, és també coneguda com “ÉS6 Harmony”. | Allen Wirfs-Brock |
| 7 | Juny de 2016 | La sèptima edició va ser una mera actualisació de la versió 6. Incorpora el método Array. prototype. includes() i l'operador exponencial (**). | Brian Terlson |
| 8 | Juny de 2017 | La 8.ª edició, oficialment coneguda com ECMAScript 2017, va ser finalisada en juny de 2017.[11] Inclou constructors async/await , els quals funcionen usant generadors i promeses.
|
Brian Terlson |
| 9 | Juny de 2018 | La 9.ª edició, oficialment coneguda com ECMAScript 2018, inclou operadors rest/spread per a variables (tres punts: ... identificador), iteracion asincronica, Promise. prototype. finally()
|
Brian Terlson |
| 10 | Giner de 2019 | La 10.ª edició, oficialment coneguda com ECMAScript 2019, va incorporar Array. flat(), Array. flatMap(), String. trimStart(), String. trimEnd(), errors opcionals en el bloc catch, Object. fromEntries(), Symbol. description
|
Mathías Bynens |
| 11 | Juny 2020 | Vore 11.ª edició – ECMAScript 2020 | Jordan Harband, Kevin Smith |
| 12 | Juny 2021 | Vore 12.ª ecma-international. org/publications-and-standards/standards/ecma-262/ ECMAScript® 2021 | |
| 13 | Juny 2022 | Estes són les noves característiques d'esta versió d'ECMAScript:
|
Shu-yu Guo, Michael Ficarra i Kevin Gibbons[13] |
En juny de 2004, Ecma International va publicar l'estàndart ECMA-357, definint una extensió d'ECMAScript, coneguda com ECMAScript per a XML (I4X). Ecma també va definir un "Perfil compacte" per a ECMAScript – coneguda com ÉS-CP, o ECMA 327 – que va ser dissenyat per a dispositius en recursos llimitats, pero es va descartar i la varen retirar en 2015.[14]
11.ª edició – ECMAScript 2020
[editar | editar còdic]La 11.ª edició, o ECMAScript 2020, va ser publicada en juny de 2020. Ademés de noves funcionalitats, esta versió inclou el tipo primitiu BigInt per a sancers de tamany arbitrari primitive, l'operador d'unió nula (en anglés, nullish coalescing), l'encadenament opcional (en anglés, optional chaining) i l'objecte globalThis.
Els BigInit es creen en el constructor BigInt o en la sintaxis 10n, a on "n" es coloca despuix del número lliteral. BigInts permet la representació i manipulació de sancers majors que Number. MAX_SAFE_INTEGER, mentres que els números està representats per un valor IEEE 754 de 64 bits de doble precisió. Les funcions integrades en Math no són compatibles en BigInits; per eixemple, la potència de BigInts deu realisar-se en l'operador ** en lloc de Math. pow.
L'operador d'unió nula, ??, torna el seu operant del costat dret quan el seu costat esquerre és null or undefined. Açò contrasta en l'operador ||, que tornarà "string" per a tots els valors "falsy", com els que es mostren a continuació:
undefined ?? "string" // -> "string" null ?? "string" // "string" false ?? "string" // -> false NaN ?? "string" // -> NaN
L'encadenament opcional et permet accedir a les propietats anidades d'un objecte sense tindre una verificació I en cada nivell.
Un eixemple és const zipcode = person?. address?. zipcode. Si alguna de les propietats no està present, zipcode serà undefined.
En el globalThis podés escriure còdic que funcione en context de finestra i no finestra sense la necessitat de chequeos extra.
ÉS. NEXT
[editar | editar còdic]ÉS. Next és un nom dinàmic per a referir-se a qualsevol pròxima versió que s'estiga desenrollant. Les característiques d'ÉS. Next són conegudes més correctament com a propostes, perque, per definició, l'especificació no ha segut encara finalisada.
Vore també
[editar | editar còdic]Referències
[editar | editar còdic]- ↑ «ECMAScript Harmony». Archivat des d'el original, el 26 d'agost de 2013. Consultat el 22 de juliol de 2015.
- ↑ «ECMAScript 6 és ya un estàndart tancat». Consultat el 22 de juliol de 2015.
- ↑ «JavaScript creator ponders past, future | Developer World». InfoWorld. Consultat el 31 d'octubre de 2013.
- ↑ «Press Release». Web. archive. org. Archivat des d'el original, el 16 de setembre de 2007. Consultat el 31 d'octubre de 2013.
- ↑ «Brendan's Roadmap Updates: Popularity». weblogs. mozillazine. org. Archivat des d'el original, el 17 de maig de 2008.
- ↑ «Press Release». Web. archive. org. Archivat des d'el original, el 3 de decembre de 1998. Consultat el 31 d'octubre de 2013.
- ↑ «Will there be a suggested file suffix for és4?». Mail. mozilla. org. Archivat des d'el original, el 21 de juny de 2020. Consultat el 31 d'octubre de 2013.
- ↑ ecma-international. org/publications/files/ECMA-ST/Ecma-262. pdf
- Archivat el 12 de abril de 2015 archivat en Wayback Machine.. EMCAScript. Retrieved on 2015-06-19.
- ↑ «ECMA-260 10th Edition».
- ↑ «Changes to JavaScript, Part 1: EcmaScript 5». YouTube (18 de maig de 2009). Consultat el 31 d'octubre de 2013.
- ↑ «It's official: ECMAScript 6 is approved - InfoWorld» (en en). www. infoworld. com. Consultat el 20 d'octubre de 2015.
- ↑ «New JavaScript Features ECMAScript 2022 (with examples)» (en en). DEV Community. Consultat el 2023-05-21.
- ↑ «Ecma International approves ECMAScript 2022: What’s new?» (en en-us). 2ality. com. Consultat el 2023-05-21.
- ↑ org/notes/2015-03-24 2015-03-24 Meeting Notes. ESDiscuss. Also see ecma-international. org/publications/standards/Standardwithdrawn. htm Ecma withdrawn Standards. ECMA.
- Este artícul conté una traducció derivada de «ECMAScript» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.