O privire asupra ECMAScript, interpretoarelor și transpilatoarelor Javascript.
Lumea Javascript poate fi o lume confuză. Oamenii vorbesc despre ECMAScript, Javascript, ES5 și ES2015 (care, apropo, este același lucru cu ES6).
În acest articol, voi explica peisajul Javascript.
ECMAScript este o specificație de limbaj, iar Javascript implementează această specificație.
La fiecare câțiva ani ECMAScript lansează o nouă versiune. Practic, noua versiune conține o listă de caracteristici noi care ar trebui să fie adăugate.
De exemplu, în noua versiune ECMAScript ar putea exista o nouă funcție: add()
care însumează două numere.
În acest fel puteți în sfârșit să adunați 2 numere cu o funcție – știu că nu este o caracteristică utilă, dar aveți răbdare de dragul exemplului 🙌
const result = add(12, 4);
console.log(result);
Când acest lucru a fost decis, depinde de toate interpretoarele Javascript să implementeze această nouă caracteristică.
Interpretatori Javascript
Un interpret Javascript este un program care va citi și executa codul Javascript. Toate browserele care suportă Javascript sunt interprete Javascript.
În afară de browsere, există și alte interprete Javascript. NodeJS este un exemplu principal de interpret care ne permite să executăm JavaScript în afara unui browser. Este un interpretor pentru că și citește și execută Javascript (precum și pentru că oferă API-uri către sistemul de operare).
Nu toată lumea își actualizează browserul și nu toate browserele suportă aceleași caracteristici Javascript. Și aici lucrurile se încurcă.
Cea mai recentă versiune ECMAScript este ES10. Cu toate acestea, nu toate browserele suportă această nouă versiune ES, deoarece încă trebuie să implementeze noile caracteristici.
În plus, există o mulțime de oameni cu versiuni învechite ale browserului lor, așa că ar putea dura ceva timp până când toți utilizatorii pot executa aceste noi caracteristici extravagante ES10.
Versiuni ES
Să facem un mic ocol și să vorbim despre versiunile ES.
Așa cum am menționat în secțiunea anterioară, cea mai recentă versiune a ECMAScript este ES10. Acum nu există cu adevărat o convenție de denumire când vine vorba de versiunile ECMAScript. Așa că ES10 se mai numește și ECMAScript2019 și ES2019.
În plus, ultima schimbare cu adevărat mare a limbajului a fost cu ES6, care a apărut în 2015, așa că uneori se mai numește și ES2015 – Da, este confuz, știu 😌
Pentru că există doar modificări minore ale limbajului după ES6, toate versiunile de după ES6 sunt uneori denumite și ESNext.
Javascript Transpilers
Îți amintești de problema faptului că nu toate browserele suportă cele mai recente caracteristici ES10? Există o soluție. Transpilatorii!
Babel este un exemplu de transpiler Javascript. Babel va converti o versiune Javascript mai nouă în una mai veche. În acest fel, puteți folosi noile caracteristici fanteziste ES10 și lăsați Babel să le transpileze în versiunea ES5, care este susținută pe scară largă.
Diferența dintre NodeJS și Browsers
NodeJS și Browsers sunt ambele interpretoare Javascript. În funcție de versiunea de browser și de versiunea de Node pe care o aveți, acestea pot suporta aceeași versiune de ECMAScript.
Cu toate acestea, Node este executat direct pe un calculator. Acest lucru înseamnă că există o serie de biblioteci incluse cu Node care nu vor funcționa în browser.
De exemplu, în NodeJS puteți crea fișiere noi. Într-un browser, acest lucru ar reprezenta un risc major de securitate, așa că acest lucru nu este posibil.
De aceea, programele NodeJS scrise în aceeași versiune ECMAScript tot nu vor rula în browserul care suportă aceeași versiune.
.