Articles

ECMAScript (Svenska)

ECMAScript-specifikationen är en standardiserad specifikation av ett skriptspråk som utvecklats av Brendan Eich av Netscape; ursprungligen namngiven Mocha, sedan LiveScript och slutligen JavaScript. I December 1995 tillkännagav Sun Microsystems och Netscape JavaScript i ett pressmeddelande. I November 1996 tillkännagav Netscape ett möte med Ecma International standards organization för att främja standardiseringen av JavaScript. Den första upplagan av ECMA-262 antogs av Ecma Generalförsamling i juni 1997. Flera utgåvor av språkstandarden har publicerats sedan dess., Namnet ”ECMAScript” var en kompromiss mellan de organisationer som är involverade i att standardisera språket, särskilt Netscape och Microsoft, vars tvister dominerade de tidiga standarderna. Eich kommenterade att ” ECMAScript var alltid ett oönskat handelsnamn som låter som en hudsjukdom.”ECMAScript har formaliserats genom operativ semantik genom arbete vid Stanford University och Institutionen för databehandling, Imperial College London för säkerhetsanalys och standardisering.,

både JavaScript och JScript överensstämmer med ECMAScript-specifikationen och ger även ytterligare funktioner som inte beskrivs i specifikationen.

VersionsEdit

det finns elva utgåvor av ECMA-262 publicerade. Arbetet med version 11 av standarden slutfördes i juni 2020.,

ECMAScript Versionshistorik
utgåva publicerat datum namn ändringar från tidigare utgåva Editor
1

juni 1997 första upplagan guy L. Steele Jr.,998 redaktionella ändringar för att hålla specifikationen helt i linje med ISO/IEC 16262 international standard Mike Cowlishaw
3 december 1999 lagt till reguljära uttryck, bättre stränghantering, nya Kontroll Uttalanden, försök/fånga undantagshantering, strängare definition av fel, formatering för numerisk utgång och andra förbättringar Mike Cowlishaw
4 övergiven (senaste utkastet 30 juni 2003) fjärde upplagan övergavs på grund av politiska skillnader när det gäller språkkomplexitet., Många funktioner som föreslagits för den fjärde upplagan har helt tappats; några införlivades i den sjätte upplagan.
5 December 2009 lägger till ”strikt läge”, en delmängd avsedd att ge mer grundlig felkontroll och undvika felbenägna konstruktioner. Klargör många tvetydigheter i 3: e upplagan specifikation, och rymmer beteende verkliga implementeringar som skiljer sig konsekvent från den specifikationen., Lägger till några nya funktioner, till exempel getters och setters, biblioteksstöd för JSON och mer fullständig reflektion över objektegenskaper. Pratap Lakshman, Allen Wirfs-Brock
5.1 juni 2011 denna utgåva 5.1 av ECMAScript-standarden är helt i linje med den tredje upplagan av den internationella standarden ISO / IEC 16262: 2011.,

Se 9: e upplagan – ECMAScript 2018 Brian Terlson
10 juni 2019 ECMAScript 2019 (ES2019) se 10: e upplagan – ECMAScript 2019 Brian Terlson, Bradley Farias, Jordan Harband
11 juni 2020 ECMAScript 2020 (Es2020) se 11th Edition – Ecmascript 2020 Jordan harband, Kevin Smith

i juni 2004 publicerade ECMA International ECMA-357-standarden, som definierar en förlängning till ECMAScript, känd som Ecmascript för XML (E4X)., Ecma definierade också en ”kompakt profil” för ECMAScript – känd som ES-CP eller ECMA 327 – som konstruerades för resursbegränsade enheter, som drogs tillbaka 2015.

4: e upplagan (övergiven)redigera

den föreslagna fjärde upplagan av ECMA-262 (ECMAScript 4 eller ES4) skulle ha varit den första stora uppdateringen till ECMAScript sedan den tredje upplagan publicerades 1999. Specifikationen (tillsammans med ett referensgenomförande) var ursprungligen avsedd för slutförande i oktober 2008. Det första utkastet var daterat i februari 1999., En översikt över språket släpptes av arbetsgruppen den 23 oktober 2007.

i augusti 2008 hade ECMAScript 4: e upplagan förslag skalas tillbaka till ett projekt kodnamnet ECMAScript harmoni. Funktioner som diskuteras för harmoni vid den tiden ingår:

  • klasser,
  • ett modulsystem,
  • valfria typ anteckningar och statisk typning, förmodligen med hjälp av en strukturell Typ system,
  • generatorer och iteratorer,
  • destructurering uppdrag, och
  • algebraiska datatyper.,

syftet med dessa funktioner var delvis att bättre stödja programmering i den stora, och att tillåta att offra en del av skriptets förmåga att vara dynamisk för att förbättra prestanda. Till exempel, Tamarin – den virtuella maskinen för Åtgärderscript, utvecklad och öppen källkod av Adobe-har just – in-time compilation (JIT) stöd för vissa klasser av skript.

förutom att införa nya funktioner föreslogs vissa ES3-fel att rättas till i utgåva 4. Dessa korrigeringar och andra, och stöd för JSON-kodning/avkodning, har viktats i ECMAScript, 5th Edition-specifikationen.,

arbetet startade på utgåva 4 efter att Es-CP (Compact Profile) – specifikationen slutfördes och fortsatte i ungefär 18 månader där långsamma framsteg gjordes för att balansera teorin om Netscape ’ s JavaScript 2-specifikation med implementeringsupplevelsen av Microsofts JScript. NET. efter en tid flyttade fokuset till ECMAScript för XML (E4X) – standarden. Uppdateringen har inte varit utan kontrovers. I slutet av 2007, en debatt mellan Eich, senare Mozilla stiftelsens CTO, och Chris Wilson, Microsofts plattform arkitekt för Internet Explorer, blev offentlig på ett antal bloggar., Wilson varnade för att eftersom de föreslagna ändringarna av ECMAScript gjorde det bakåtkompatibelt i vissa avseenden till tidigare versioner av språket, uppgick uppdateringen till ”breaking the Web” och att intressenter som motsatte sig ändringarna var ”dolda ur sikte”. Eich svarade genom att säga att Wilson verkade vara ”upprepa lögner i bloggar” och förnekade att det var försök att undertrycka oliktänkande och utmanade kritiker att ge specifika exempel på inkompatibilitet., Han påpekade att Microsoft Silverlight och Adobe AIR förlitar sig på C# respektive ActionScript 3, som båda är större och mer komplexa än ECMAScript Edition 3.

5th EditionEdit

Yahoo, Microsoft, Google och andra 4th edition dissenters bildade sin egen underkommitté för att utforma en mindre ambitiös uppdatering av ECMAScript 3, preliminärt namngiven ECMAScript 3.1. Denna utgåva skulle fokusera på säkerhets-och biblioteksuppdateringar, med stor tonvikt på kompatibilitet. Efter ovannämnda offentliga sparring, ECMAScript 3.,1 och ECMAScript 4-lag kom överens om en kompromiss: de två utgåvorna skulle arbetas parallellt med samordning mellan lagen för att säkerställa att ECMAScript 3.1 förblir en strikt delmängd av ECMAScript 4 i både semantik och syntax.

de olika filosofierna i varje lag resulterade dock i upprepade brott mot delmängdsregeln, och det var tveksamt om ECMAScript 4-dissenterna någonsin skulle stödja eller genomföra ECMAScript 4 i framtiden., Efter över ett år sedan oenigheten om ECMAScript: s framtid inom ECMA Technical Committee 39 nådde de två lagen en ny kompromiss i juli 2008: Brendan Eich meddelade att Ecma TC39 skulle fokusera arbetet på ECMAScript 3.1 (senare döpt till ECMAScript, 5th Edition) – projektet med fullt samarbete mellan alla parter, och leverantörer skulle rikta minst två driftskompatibla implementeringar i början av 2009. I April 2009 publicerade Ecma TC39 det” slutliga ” utkastet till den femte upplagan och meddelade att testning av driftskompatibla implementeringar förväntades slutföras i mitten av juli., Den 3 December 2009 publicerades ECMA-262 5th edition.

6: e upplagan – ECMAScript 2015Edit

6: e upplagan, ursprungligen känd som ECMAScript 6 (ES6) sedan och senare omdöpt till ECMAScript 2015, slutfördes i juni 2015. Den här uppdateringen lägger till betydande ny syntax för att skriva komplexa applikationer, inklusive klassdeklarationer (class Foo { ... }), ES6-moduler somimport * as moduleName from "..."; export const Foo, men definierar dem semantiskt i samma termer som ECMAScript 5 strikt läge., Andra nya funktioner inkluderar iteratorer och for...of loopar, Python-stil generatorer, pilfunktion uttryck (() => {...}), let nyckelord för lokala deklarationer, const nyckelord för konstant lokala deklarationer, binära data, skrivna matriser, nya samlingar (kartor, uppsättningar och WeakMap), löften, antal och matematik förbättringar, reflektion, fullmakter (metaprogramming för virtuella objekt och omslag) och Mall literals för strängar. Den fullständiga listan är omfattande., Som den första ”ECMAScript Harmony” – specifikationen är den också känd som ” ES6 Harmony.”

7th Edition – ECMAScript 2016Edit

den 7: e upplagan, officiellt känd som ECMAScript 2016, slutfördes i juni 2016. Dess funktioner inkluderar block-scoping av variabler och funktioner, förstöringsmönster (av variabler), korrekt svans samtal, exponentiering operatör ** för siffror, await, async nyckelord för asynkron programmering, och Array.prototypstadiet.inkluderar funktion.,

exponentieringsoperatören motsvararmatematik.pow, men ger en enklare syntax som liknar språk som Python, f#, Perl och Ruby.async /väntar hyllades som ett enklare sätt att använda löften och utveckla asynkron kod.

8: e upplagan – ECMAScript 2017Edit

8: e upplagan, officiellt känd som ECMAScript 2017, slutfördes i juni 2017. Dess funktioner inkluderar - objektet.värden, objekt.,poster ochobjekt.getOwnPropertyDescriptors funktioner för enkel manipulation av Objekt, async/await konstruktioner som använder generatorer och löften, och ytterligare funktioner för samtidighet och atomics.

9th Edition – ECMAScript 2018Edit

9th edition, officiellt känd som ECMAScript 2018, slutfördes i juni 2018. Nya funktioner inkluderar rest / spread operatörer för objektliteraler (tre punkter: ...identifier), asynkron iteration, Promise.prototype.finally och tillägg till RegExp.,

spread-operatören möjliggör enkel kopiering av objektegenskaper, som visas nedan.

10th Edition – ECMAScript 2019Edit

10th edition, officiellt känd som ECMAScript 2019, publicerades i juni 2019. Tillagda funktioner inkluderar, men är inte begränsade till, Array.prototype.flat, Array.prototype.flatMap, ändringar i Array.sort och Object.fromEntries.

Array.Sortera garanteras nu vara stabil, vilket innebär att element med samma sorteringsordning kommer att visas i samma ordning i den sorterade matrisen., Array.prototype.flat(depth=1) plattar en matris till ett visst djup, vilket innebär att alla subarray-element (upp till det angivna djupet) sammanfogas rekursivt.

11th Edition – ECMAScript 2020Edit

11th edition, officiellt känd som ECMAScript 2020, publicerades i juni 2020. Förutom nya funktioner innehåller den här versionen enBigInt primitiv typ för godtyckliga heltal, den nullish koalescing-operatören och det globaladetta objekt.,

BigInts skapas antingen medBigInt constructor eller med syntaxen10n , där ”n” placeras efter numret bokstavligt. BigInts tillåter representation och manipulation av heltal bortom nummer.MAX_SAFE_INTEGER, medan Siffrorna representeras av en dubbel precision 64-bitars IEEE-754 värde., De inbyggda funktionerna i Math är inte kompatibla med BigInts; till exempel måste exponentiering av BigInts göras med ** – operatören istället för Math.pow.

nullish coalescing operatören ??, returnerar sin högra sida operand när dess vänstra sida är null eller odefinierad., Detta står i kontrast till|| – operatören, som skulle returnera ”string” för alla exempel.

false ?? "string" // -> falseNaN ?? "string" // -> NaNundefined ?? "string" // -> "string"

valfri kedja gör att du kan komma åt de kapslade noderna i ett objekt utan att ha a och kontrollera på varje nivå.

ett exempel är const zipcode = person?.adress?.postnummer. Om någon av egenskaperna inte finns kommerzipcode att varaundefined .

ES.NextEdit

ES.,Nästa är ett dynamiskt namn som refererar till vad nästa version är vid skrivningstillfället. ES.Nästa funktioner är färdiga förslag (aka ”steg 4 förslag”) som anges på färdiga förslag som inte ingår i en ratificerad specifikation. Språkkommittén följer en ”levande spec” – modell, så dessa förändringar är en del av standarden, och ratificering är en formalitet.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *