Mi a helyzet a Javascript-verziókkal?

A Javascript világa egy zavaros világ lehet. Az emberek beszélnek ECMAScriptről, Javascriptről, ES5-ről és ES2015-ről (ami egyébként megegyezik az ES6-tal).

Ebben a cikkben elmagyarázom a Javascript világát.

Javascript Yellow – Photo by Joseph Gruenthal on Unsplash

Az ECMAScript egy nyelvi specifikáció, a Javascript pedig ezt a specifikációt valósítja meg.

Az ECMAScript néhány évente kiad egy új verziót. Az új verzió alapvetően egy listát tartalmaz a hozzáadandó új funkciókról.

Az új ECMAScript verzióban például lehet egy új függvény: add(), amely összead két számot.

Így végre összeadhatunk 2 számot egy függvénnyel – tudom, hogy ez nem egy hasznos funkció, de a példa kedvéért nézzétek el nekem 🙌

const result = add(12, 4);
console.log(result);

Ha ez megvan, akkor az összes Javascript értelmezőn múlik, hogy implementálja ezt az új funkciót.

Javascript-értelmezők

A Javascript-értelmező egy olyan program, amely Javascript-kódot olvas és hajt végre. Minden böngésző, amely támogatja a Javascriptet, Javascript-értelmező.

A böngészőkön kívül más Javascript-értelmezők is léteznek. A NodeJS egy elsődleges példa egy olyan értelmezőre, amely lehetővé teszi, hogy a böngészőn kívül is futtassunk JavaScriptet. Azért értelmező, mert a Javascriptet is olvassa és végrehajtja (valamint API-kat biztosít az operációs rendszer számára).

Nem mindenki frissíti a böngészőjét, és nem minden böngésző támogatja ugyanazokat a Javascript-funkciókat. És ez az a pont, ahol a dolgok összekuszálódnak.

Az ECMAScript legújabb verziója az ES10. Azonban nem minden böngésző támogatja ezt az új ES-verziót, mivel még implementálniuk kell az új funkciókat.

Még sokan vannak, akiknek elavult verziójú a böngészőjük, így eltarthat egy ideig, amíg minden felhasználó végre tudja hajtani ezeket az új, divatos ES10-es funkciókat.

ES verziók

Tegyünk egy kis kitérőt, és beszéljünk az ES verziókról.

Mint az előző részben említettem, az ECMAScript legújabb verziója az ES10. Nos, az ECMAScript verziókra vonatkozóan nem igazán létezik elnevezési konvenció. Így az ES10-et ECMAScript2019-nek és ES2019-nek is nevezik.

Az utolsó igazán nagy változás a nyelvben az ES6 volt, amely 2015-ben jelent meg, így néha ES2015-nek is nevezik – Igen, ez zavaró, tudom 😌

Mivel az ES6 után csak kisebb változások történtek a nyelvben, az ES6 utáni összes verziót néha ESNextnek is nevezik.

Javascript Transpilers

Emlékszel arra a problémára, hogy nem minden böngésző támogatja a legújabb ES10 funkciókat? Van rá megoldás. Transzpilerek!

A Babel egy példa a Javascript transzpilerre. A Babel egy újabb Javascript verziót alakít át egy régebbi verzióra. Így használhatod az új, divatos ES10 funkciókat, és hagyhatod, hogy a Babel átfordítsa a széles körben támogatott ES5 verzióra.

Különbség a NodeJS és a Browsers között

A NodeJS és a Browsers mindkettő Javascript értelmező. Attól függően, hogy melyik böngésző- és melyik Node-verzióval rendelkezik, támogathatják ugyanazt az ECMAScript-verziót.

A Node azonban közvetlenül a számítógépen kerül végrehajtásra. Ez azt jelenti, hogy a Node-hoz számos olyan könyvtárat csomagolnak, amelyek nem működnek a böngészőben.

A NodeJS-ben például új fájlokat hozhat létre. Egy böngészőben ez komoly biztonsági kockázatot jelentene, ezért ez nem lehetséges.

Ez az oka annak, hogy az azonos ECMAScript verzióval írt NodeJS programok még mindig nem fognak futni az azonos verziót támogató böngészőben.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.