ECMAScript (Magyar)
az ECMAScript specifikáció a Netscape Brendan Eich által kifejlesztett szkriptnyelv szabványosított specifikációja; kezdetben Mocha, majd LiveScript, végül JavaScript. 1995 decemberében a Sun Microsystems és a Netscape sajtóközleményben jelentette be a JavaScript használatát. 1996 novemberében a Netscape bejelentette az Ecma Nemzetközi Szabványügyi Szervezet ülését a JavaScript szabványosításának előmozdítása érdekében. Az ECMA-262 első kiadását az Ecma Közgyűlés 1997 júniusában fogadta el. Azóta a nyelvi szabvány több kiadása is megjelent., Az” ECMAScript ” név kompromisszum volt a nyelv szabványosításában részt vevő szervezetek, különösen a Netscape és a Microsoft között, amelyek vitái uralták a korai szabványokat. Eich megjegyezte, hogy “az ECMAScript mindig nem kívánt kereskedelmi név volt, amely bőrbetegségnek hangzik.”Az ECMAScript-et a Stanford Egyetem és az Imperial College London for security analysis and standardization számítástechnikai Tanszékén végzett munka az operatív szemantika segítségével formalizálta.,
mind a JavaScript, mind a JScript megfelel az ECMAScript specifikációnak, miközben további, a specifikációban nem leírt funkciókat is biztosít.
VersionsEdit
az ECMA-262 tizenegy kiadása jelent meg. A szabvány 11-es verziójának munkáját 2020 júniusában véglegesítették.,
Edition | ate published | dition | |||||
---|---|---|---|---|---|---|---|
1 | 1997. június | első kiadás | guy L. Steele Jr.,998 | Szerkesztői változás, hogy tartsa a termékleírás teljes mértékben összhangban van az ISO/IEC 16262 nemzetközi standard | Mike Cowlishaw | ||
3 | 1999 December | Ki reguláris kifejezések, jobb string kezelő, új vezérlő utasítások, try/catch kivételkezelés, szűkebb meghatározása, hibák, formázás, numerikus kimenet, illetve egyéb tartozékok | Mike Cowlishaw | ||||
4 | Elhagyott (utolsó tervezet június 30-2003) | Negyedik Kiadás volt, elhagyatott, a politikai különbségek vonatkozó nyelv összetettsége., A negyedik kiadásra javasolt számos funkciót teljesen eldobták; néhányat beépítettek a hatodik kiadásba. | |||||
5 | 2009. December | Hozzáad “strict módban, az” egy részhalmaza célja, hogy alaposabb hibaellenőrzés elkerülni hibára hajlamos konstrukciók. Tisztázza a 3. kiadás specifikációjában szereplő sok kétértelműséget, és alkalmazkodik a valós implementációk viselkedéséhez, amelyek következetesen különböztek az adott specifikációtól., Hozzáad néhány új funkciót, mint például a getters and setters, a JSON könyvtári támogatása, valamint az objektum tulajdonságainak teljesebb tükrözése. | Pratap Lakshman, Allen Wirfs-Brock | ||||
5.1 | 2011.június | az ECMAScript szabvány 5.1. kiadása teljes mértékben összhangban van az ISO / IEC 16262:2011 nemzetközi szabvány harmadik kiadásával., | Lásd 9. Kiadás – ECMAScript 2018-ig | Brian Terlson | |||
10 | június 2019-ig | ECMAScript 2019 (ES2019) | Lásd 10. Kiadás – ECMAScript 2019 | Brian Terlson, Bradley Farias, Jordan Harband | |||
11 | június 2020-ig | ECMAScript 2020-ig (ES2020) | Lásd a 11. Kiadás – ECMAScript 2020-ig | Jordan Harband, Kevin Smith |
2004 júniusában Ecma International közzétett ECMA-357 standard meghatározó meghosszabbítása ECMAScript, ismert ECMAScript az XML (E4X)., Ecma is meghatározott “kompakt profil” ECMAScript-néven ismert ES-CP, vagy ECMA 327 -, hogy tervezték erőforrás-korlátozott eszközök, amely visszavonták 2015-ben.
4th Edition (elhagyott)Edit
az ECMA-262 (ECMAScript 4 vagy ES4) javasolt negyedik kiadása lett volna az első jelentős frissítés az ECMAScript számára, mivel a harmadik kiadás 1999-ben jelent meg. A specifikáció (egy referencia implementációval együtt) eredetileg 2008 októberére készült el. Az első tervezet 1999 februárjában kelt., A nyelv áttekintését a munkacsoport 2007.október 23-án tette közzé.
2008 augusztusára az ECMAScript 4th edition javaslatot egy ECMAScript Harmony nevű projektkód alá sorolták vissza. Az akkori harmónia témakörben tárgyalt jellemzők:
- osztályok,
- modulrendszer,
- opcionális típusjegyzetek és statikus gépelés, valószínűleg szerkezeti típusrendszer,
- generátorok és iterátorok,
- destructuring hozzárendelés és
- algebrai adattípusok.,
ezeknek a funkcióknak a célja részben az volt, hogy jobban támogassák a programozást a nagyban, valamint hogy lehetővé tegyék a szkript dinamikus képességének feláldozását a teljesítmény javítása érdekében. Például a Tamarin-az Adobe által fejlesztett és nyílt forráskódú ActionScript virtuális gépe-just-in-time compilation (JIT) támogatást nyújt bizonyos szkriptek számára.
az új funkciók bevezetése mellett néhány ES3 hibát javasoltak a 4.kiadásban. Ezek a javítások és mások, valamint a JSON kódolás/dekódolás támogatása, az ECMAScript, 5.kiadás specifikációjába kerültek.,
A munka az Es-CP (Compact Profile) specifikáció befejezése után kezdődött a 4. kiadásban, és körülbelül 18 hónapig folytatódott, ahol lassú előrehaladás történt a Netscape JavaScript 2 specifikációjának elméletének kiegyensúlyozása a Microsoft JScript .NET végrehajtási tapasztalataival. egy idő után a hangsúly az ECMAScript for XML (E4X) szabványra vált. A frissítés nem volt vita nélkül. 2007 végén, egy vita között Eich, később a Mozilla Alapítvány CTO, Chris Wilson, a Microsoft platform építész, az Internet Explorer, nyilvánosságra számos blogok., Wilson figyelmeztette, hogy mivel az ECMAScript javasolt módosításai bizonyos szempontból visszafelé összeegyeztethetetlenek a nyelv korábbi verzióival, a frissítés “az Internet feltörését” jelentette, és hogy a változásokat ellenző érdekelt feleket “elrejtették a nézetből”. Eich úgy reagált, hogy Wilson “hazugságokat ismételget a blogokban”, és tagadta, hogy megpróbálták volna elnyomni az elégedetlenséget, és kihívta a kritikusokat, hogy konkrét példákat mutassanak az összeférhetetlenségre., Rámutatott, hogy a Microsoft Silverlight és az Adobe AIR a C# – ra és az ActionScript 3-ra támaszkodik, mindkettő nagyobb és összetettebb, mint az ECMAScript 3. kiadása.
5th EditionEdit
Yahoo, Microsoft, Google, and other 4th edition dissenters formed their own albizottság to design a less ambitive update of ECMAScript 3, tentably named ECMAScript 3.1. Ez a kiadás a biztonságra és a könyvtárfrissítésekre összpontosítana, nagy hangsúlyt fektetve a kompatibilitásra. A fent említett nyilvános sparring után az ECMAScript 3.,Az 1 és az ECMAScript 4 csapatok megállapodtak egy kompromisszumban: a két kiadást párhuzamosan a csapatok közötti koordinációval dolgozzák fel annak biztosítása érdekében, hogy az ECMAScript 3.1 mind a szemantika, mind a szintaxis tekintetében az ECMAScript 4 szigorú alcsoportja maradjon.
az egyes csapatok eltérő filozófiái azonban az alrendszer szabályának ismételt törését eredményezték, és kétséges maradt, hogy az ECMAScript 4 disszidensek valaha is támogatják vagy végrehajtják az ECMAScript 4-et a jövőben., Több mint egy évvel az ECMAScript jövőjével kapcsolatos nézeteltérés után az Ecma MŰSZAKI Bizottságon belül 39, a két csapat 2008 júliusában új kompromisszumot ért el: Brendan Eich bejelentette, hogy az Ecma TC39 az ECMAScript 3.1 (később ECMAScript, 5. kiadás) projektre összpontosít, minden fél teljes együttműködésével, és a gyártók 2009 elejére legalább két interoperábilis megvalósítást céloznak meg. 2009 áprilisában az Ecma TC39 közzétette az 5. kiadás “végleges” tervezetét, és bejelentette, hogy az interoperábilis megvalósítások tesztelése várhatóan július közepére fejeződik be., 2009. December 3-án megjelent az ECMA-262 5.kiadása.
6. Kiadás-ECMAScript 2015Edit
a 6.kiadás, eredetileg ECMAScript 6 (ES6) néven ismert, majd később ECMAScript 2015-re átnevezték, 2015 júniusában véglegesítették. Ez a frissítés jelentős új szintaxist ad az összetett alkalmazások írásához, beleértve az osztály deklarációkat (class Foo { ... }
), az ES6 modulokat, mint például a import * as moduleName from "..."; export const Foo
, de szemantikailag ugyanúgy határozza meg őket, mint az ECMAScript 5 szigorú mód., Egyéb új funkciók közé tartozik iterators, a for...of
hurkok, Python stílusban generátor, nyíl funkció kifejezés (() => {...}
), let
kulcsszó a helyi nyilatkozatok, const
kulcsszó állandó helyi nyilatkozatok, bináris adatok, gépelt tömbök, új gyűjtemények (térképek, díszlet WeakMap), ígéretek, szám matek fejlesztések, az elmélkedés, a proxy (a függvény a virtuális tárgyak, csomagolás), valamint sablon közvetlen használata erősen kerülendő a szálakat. A teljes lista kiterjedt., Az első ” ECMAScript Harmony “specifikációként” ES6 Harmony ” néven is ismert.”
7. kiadás-ECMAScript 2016szerkesztés
a 7. kiadás, hivatalosan ECMAScript 2016 néven, 2016 júniusában véglegesítésre került. Jellemzői közé tartozik a változók és függvények blokkmérése, a destruktív minták (változók), a megfelelő farokhívások, az exponenciál operátor **
számokhoz, await
, async
aszinkron programozás kulcsszavai, valamint a array.prototípus.tartalmazza a funkciót.,
az exponenciál operátor egyenértékű a matematikával.pow
, de egy egyszerűbb szintaxis hasonló nyelvek, mint a Python, F#, Perl, Ruby.async
/várják
üdvözölték, mint egy egyszerűbb módja, hogy használja az ígéretek fejleszteni aszinkron kódra.
8th Edition-ECMAScript 2017Edit
a 8. kiadás, hivatalosan ECMAScript 2017 néven, 2017 júniusában véglegesítésre került. Jellemzői közé tartozik a objektum.értékek
, objektum.,bejegyzések
és objektum.getOwnPropertyDescriptors
funkciók az objektumok egyszerű manipulálásához, async/await
konstrukciók, amelyek generátorokat és ígéreteket használnak, valamint további funkciók a párhuzamossághoz és atomikához.
9th Edition-ECMAScript 2018Edit
a 9. kiadás, hivatalosan ECMAScript 2018 néven, 2018 júniusában véglegesítésre került. Új funkciók közé rest / spread operátorok objektum literals (három pont: ...identifier
), aszinkron iteráció, Promise.prototype.finally
és kiegészítéseket RegExp.,
a spread operátor lehetővé teszi az objektum tulajdonságainak egyszerű másolását, az alábbiak szerint.
10th Edition-ECMAScript 2019Edit
a 10. kiadás, hivatalosan ECMAScript 2019 néven, 2019 júniusában jelent meg. Hozzáadott funkciók közé tartozik, de nem kizárólagosan, Array.prototype.flat
, Array.prototype.flatMap
, változások Array.sort
és Object.fromEntries
.
Array.a
rendezése most garantáltan stabil, ami azt jelenti, hogy az azonos rendezési elsőbbséggel rendelkező elemek ugyanabban a sorrendben jelennek meg a rendezett tömbben., Array.prototype.flat(depth=1)
egy tömböt egy meghatározott mélységbe simít, ami azt jelenti, hogy az összes (a megadott mélységig) szubarray elem rekurzívan össze van kötve.
11. kiadás – ECMAScript 2020szerkesztés
a 11. kiadás, hivatalosan ECMAScript 2020 néven, 2020 júniusában jelent meg. Az új funkciók mellett ez a verzió tartalmaz egy BigInt
primitív típust tetszőleges méretű egészekhez, a nullish coalescing operátort, valamint a globalThis objektumot.,
BigInts jönnek létre vagy a BigInt
konstruktor vagy a szintaxis 10N
, ahol” n ” után kerül a szám szó. A BigInts lehetővé teszi a szám alatti egész számok ábrázolását és manipulálását.MAX_SAFE_INTEGER
, míg a számokat kettős pontosságú 64 bites IEEE 754 érték képviseli., A Math
beépített funkciói nem kompatibilisek a BigInts-szel; például a BigInts exponenciálását a **
operátorral kell elvégezni a math helyett.pow
.
a nullish coalescing operátor, ??
, akkor adja vissza a jobb oldali operandusát ,ha bal oldala null
vagy undefined
., Ez ellentétben áll a ||
operátorral, amely az összes példához” karakterláncot ” ad vissza.
false ?? "string" // -> falseNaN ?? "string" // -> NaNundefined ?? "string" // -> "string"
opcionális láncolás lehetővé teszi az objektum beágyazott csomópontjainak elérését anélkül, hogy minden szinten ellenőriznénk.
egy példa: const irányítószám = személy?.cím?.zipcode
. Ha valamelyik tulajdonság nincs jelen, a irányítószám
undefined
lesz.
ES.NextEdit
ES.,A következő egy dinamikus név, amely arra utal, hogy a következő verzió az írás idején van. ES.A következő jellemzők a kész javaslatok (más néven “4.szakasz javaslatok”), amelyek szerepelnek a kész javaslatban, amelyek nem részei a ratifikált specifikációnak. A nyelvi Bizottság “élő spec” modellt követ, tehát ezek a változások a szabvány részét képezik, a ratifikáció pedig formalitás.