ECMAScript

ECMAScript
Brendan Eich
https://ecma-international.org/
Generell informasjon
Vanlige utvidelser Det er
Paradigme Multiparadigme : prototyping , funksjonell , imperativ
Dukket opp i 1. januar 1997 (25 år, 9 måneder og 15 dager)
Designet av Brendan Eich , Ecma International
implementeringer SpiderMonkey , V8 , ActionScript , JScript , QtScript , InScript
påvirket av Self , HyperTalk , AWK , C , Perl , Python , Java , Scheme
ECMAScript
utvikler
Sun Microsystems ,
Ecma International

ECMA-262 , ECMA-290 ,
ECMA-327 , ECMA-357 ,
[ http://www.ecma-international.org/publications/standards/Ecma-404.htm

ECMA-404 ]
Generell informasjon
filutvidelse .es
mime-type application/ecmascript
Første utgivelse 1. juni 1997 (25 år, 4 måneder og 15 dager)
Siste versjon 7. utgave
1. juni 2016 (6 år, 4 måneder og 15 dager) [ 1 ]
formattype skriptspråk
utvidet fra JavaScript og JScript
åpent format ?

ECMAScript er en programmeringsspråkspesifikasjon utgitt av Ecma International . Utviklingen startet i 1996 og var basert på det populære JavaScript -språket foreslått som standard av Netscape Communications Corporation . Den er for tiden akseptert som ISO/IEC 22275:2018-standarden.

ECMAScript definerer et dynamisk skrevet språk løst inspirert av Java og andre språk i C-stil . Den støtter noen funksjoner ved objektorientert programmering gjennom prototypebaserte objekter og pseudoklasser.

De fleste nettlesere inkluderer en implementering av ECMAScript-standarden, samt tilgang til Document Object Model for å manipulere nettsider. JavaScript er implementert i de fleste nettlesere, Microsofts Internet Explorer bruker JScript . Opera - nettleseren hadde sin egen ECMAScript-tolk med utvidelser for å støtte noen JavaScript- og JScript-funksjoner, for øyeblikket er Opera basert på Chromium (og bruker tolken). Hver nettleser har sine egne utvidelser til ECMAScript-standarden, men enhver kode som samsvarer med standarden skal fungere i dem alle.

ActionScript , for Adobe Flash , er også basert på ECMAScript-standarden, med forbedringer som lar deg flytte, opprette og analysere objekter dynamisk mens filmen kjører.

Siden utgivelsen av ECMAScript 1-standarden i juni 1997 har det vært versjon 2, 3 og 5, som er den mest brukte i dag (versjon 4 ble droppet [ 2 ] ). I juni 2015 ble ECMAScript 6-versjonen stengt og publisert. [ 3 ]

Historikk

ECMAScript er en standardspesifikasjon for et språk utviklet av Brendan Eich , ansatt av Netscape ; det ble opprinnelig kalt Mocha, deretter LiveScript, og til slutt Javascript. [ 4 ] I desember 1995 annonserte Sun Microsystems og Netscape JavaScript på en pressekonferanse. [ 5 ] I mars 1996 ble Netscape Navigator 2.0 utgitt med støtte for JavaScript.

På grunn av JavaScripts store suksess som skriptspråk på klientsiden for nettsider, utviklet Microsoft en kompatibel dialekt av språket, kalt JScript , for å unngå juridiske problemer med varemerket. JScript la til nye metoder for datoer, for å lindre år 2000 ( Y2K ) problemer, delvis forårsaket av Javascript-metoder som er basert på Java Date-klasser. [ 6 ] JScript ble inkludert i Internet Explorer 3.0, utgitt i august 1996.

Netscape sendte JavaScript-utkastet til Ecma International for standardisering og for at de skulle jobbe med deres ECMA-262-spesifikasjon, som begynte i november 1996. [ 7 ] Den første utgaven av ECMA-262 ble vedtatt av Ecma generalforsamling i juni 1997. Flere utgaver av standardspråket har blitt publisert siden den gang. Navnet "ECMAScript" var et kompromiss mellom organisasjonene som var involvert i standardisering av språket, spesielt mellom Netscape og Microsoft, som kjempet om dominansen av de tidlige standardøktene. Eich kommenterte at "ECMAScript alltid var et uønsket merkenavn, som hørtes ut som en hudsykdom." [ 8 ]

Selv om både JavaScript- og JScript-spesifikasjonene tar sikte på å være kompatible med ECMAScript, gir de også tilleggsfunksjoner, som ikke er beskrevet i ECMA-spesifikasjonene. [ referanse nødvendig ]


Versjoner

Det er elleve versjoner av ECMA-262 publisert. Arbeidet med versjon 11 av standarden ble fullført i juni 2020. [ 9 ]

Allen Wirfs-Brock: ECMA-262, prosjektredaktør, 6. utgave og Brian Terlson: ECMA-262, prosjektredaktør, 7. til 10. utgave [ 10 ]

Utgave Publiseringsdato Endringer fra forrige utgave Redaktør
1 juni 1997 Første utgave Guy L. Steele, Jr.
to juni 1998 Redaksjonelle endringer for å holde hele spesifikasjonen på linje med den internasjonale standarden ISO/IEC 16262 Mike Cowlishaw
3 desember 1999 Lagt til regulære uttrykk, bedre strenghåndtering, ny setningshåndtering, try/catch-unntakshåndtering, strengere definisjon av feil, formatering for numerisk utdata og andre forbedringer. Mike Cowlishaw
4 Forlatt Den fjerde utgaven ble forlatt på grunn av politiske forskjeller angående kompleksiteten til språket. Mange funksjoner som ble foreslått for den fjerde utgaven ble fullstendig forlatt; noen ble foreslått for ECMAScript Harmony-utgaven.
5 desember 2009 Legger til streng modus, et undersett ment å gi bedre feilkontroll og unngå feilutsatte konstruktører. Den fjerner forskjellige uklarheter i den tredje utgaven, og avgrenser oppførselen til "virkelige verden"-implementeringer som avviker konsekvent fra den spesifikasjonen. Den legger til noen nye funksjoner, som gettere og settere, et bibliotek for JSON- støtte og en mer fullstendig refleksjon over objektegenskaper. [ 11 ] Pratap Lakshman , Allen Wirfs-Brock
5.1 juni 2011 Denne 5.1-utgaven av ECMAScript-standarden er helt på linje med den tredje utgaven av den internasjonale standarden ISO/IEC 16262:2011. Pratap Lakshman, Allen Wirfs-Brock
6 juni 2015 [ 12 ] Den sjette utgaven legger til betydelige syntaksendringer for å skrive komplekse applikasjoner, inkludert klasser og moduler, og definerer dem semantisk i samme strenge modustermer som ECMAScript 5-utgaven. Andre nye funksjoner inkluderer iteratorer for / av løkker, generatorer og uttrykk i generatorstil. Python , adressefunksjoner, binære data, samlinger (kart, sett, svake kart) og proxyer (metaprogrammering for virtuelle objekter og wrappers). Som den første "ECMAScript Harmony"-spesifikasjonen, er den også kjent som "ES6 Harmony". Allen Wirfs-Brock
7 juni 2016 Den syvende utgaven var bare en oppdatering til versjon 6. Den legger til Array.prototype.includes()-metoden og den eksponentielle operatoren (**). Brian Terlson
8 juni 2017 Den 8. utgaven, offisielt kjent som ECMAScript 2017, ble ferdigstilt i juni 2017. [11] Den inkluderer konstruktører async/await, som jobber ved hjelp av generatorer og løfter. Brian Terlson
9 juni 2018 Den niende utgaven, offisielt kjent som ECMAScript 2018, inkluderer hvile/spredningsoperatorer for variabler (tre prikker: ...identificador), asynkron iterasjon,Promise.prototype.finally() Brian Terlson
10 januar 2019 Den 10. utgaven, offisielt kjent som ECMAScript 2019, introduserte Array.flat(), Array.flatMap(), String.trimStart(), String.trimEnd(), valgfrie feil i catch-blokken, Object.fromEntries(),Symbol.description Mathias Bynens
elleve juni 2020 Se 11. utgave – ECMAScript 2020 Jordan Harband, Kevin Smith
12 juni 2021 Se 12. ECMAScript® 2021

I juni 2004 publiserte Ecma International ECMA-357-standarden, og definerte en utvidelse til ECMAScript, kjent som ECMAScript for XML (E4X). Ecma definerte også en "kompakt profil" for ECMAScript – kjent som ES-CP, eller ECMA 327 – som ble designet for enheter med begrensede ressurser, men ble droppet og trukket tilbake i 2015. [ 13 ]

11. utgave – ECMAScript 2020

Den 11. utgaven, eller ECMAScript 2020, ble utgitt i juni 2020. I tillegg til ny funksjonalitet inkluderer denne versjonen den primitive typen BigIntfor primitive heltall i vilkårlig størrelse, nullish coalescing operator , chaining optional (på engelsk, optional chaining ) og objektet globalThis.

BigInits opprettes med konstruktøren BigInteller med syntaksen 10n, der "n" er plassert etter det bokstavelige tallet. BigInts tillater representasjon og manipulering av heltall større enn Number.MAX_SAFE_INTEGER, mens tall er representert med en dobbel presisjon 64-biters IEEE 754-verdi. De innebygde funksjonene Mathstøttes ikke av BigInits; for eksempel må kraften til BigInts gjøres med operatøren **i stedet for Math.pow.

Nullunionsoperatøren, ??, returnerer sin høyre sideoperand når venstre side er nulleller undefined. Dette er i motsetning til operatøren ||, som vil returnere "string"for alle "falske" verdier, som de nedenfor:

udefinert ?? "streng" // -> "streng" null ?? "streng" // "streng" falsk ?? "streng" // -> usann NaN?? "streng" // -> NaN

Valgfri kjetting lar deg få tilgang til nestede egenskaper for et objekt uten å ha en OG-kontroll på hvert nivå. Et eksempel er const zipcode = person?.address?.zipcode. Hvis noen av eiendommene ikke er til stede, zipcodevil det være undefined.

Med globalThis kan du skrive kode som fungerer i vindus- og ikke-vinduskontekster uten behov for ekstra kontroller.

ES.NESTE

ES.Next er et dynamisk navn som refererer til enhver neste versjon som utvikles. ES.Next-funksjoner er mer korrekt kjent som forslag, fordi spesifikasjonen per definisjon ennå ikke er ferdigstilt.


Se også

Referanser

  1. Standard ECMA-262: ECMAScript® 2016 språkspesifikasjon . Hentet 13. januar 2017.
  2. Eich, Brendan (13. august 2008). ECMAScript Harmony . Hentet 22. juli 2015 . 
  3. campusMVP (19. juni 2015). "ECMAScript 6 er nå en lukket standard" . Hentet 22. juli 2015 . 
  4. Krill, Paul (23. juni 2008). JavaScript-skaper funderer over fortid, fremtid | Utviklerverden» . InfoWorld . Hentet 31. oktober 2013 . 
  5. ^ "Pressemelding" . Web.archive.org. Arkivert fra originalen 16. september 2007 . Hentet 31. oktober 2013 . 
  6. ^ "Brendans veikartoppdateringer: Popularitet" . weblogs.mozillazine.org . Arkivert fra originalen 17. mai 2008. 
  7. ^ "Pressemelding" . Web.archive.org. Arkivert fra originalen 3. desember 1998 . Hentet 31. oktober 2013 . 
  8. "Vil det være et foreslått filsuffiks for es4?" . Mail.mozilla.org. 3. oktober 2006. Arkivert fra originalen 21. juni 2020 . Hentet 31. oktober 2013 . 
  9. ^ [1] Arkivert 2015-04-12 på Wayback Machine .. EMCAScript. Hentet 2015-06-19.
  10. ^ "ECMA-260 10. utgave" . 
  11. ^ "Endringer i JavaScript, del 1: EcmaScript 5" . Youtube. 18. mai 2009 . Hentet 31. oktober 2013 . 
  12. ^ "Det er offisielt: ECMAScript 6 er godkjent - InfoWorld" . www.infoworld.com (på engelsk) . Hentet 20. oktober 2015 . 
  13. 2015-03-24 Møtenotater . ENDdiskuter. Se også Ecma-tilbaketrukket standarder . ECMA.

Eksterne lenker