Cos'è ECMAScript?


118

In Visual Studio, quando imposto il mio tipo di script su JavaScript, questa si presenta come un'opzione in intellisense.

Una rapida ricerca su Google ha prodotto risultati scadenti, portandomi a credere che non sia molto popolare da usare.

  • Che cos'è?
  • Qualcuno lo usa? (<script type="text/ecmascript">)
  • Perché?


Conoscere la differenza tra ECMAScript e Javascript aiuta anche a comprendere ECMAScript.
RBT

Risposte:


169

JavaScript è un sottoinsieme di ECMAScript. JavaScript è fondamentalmente ECMAScript al suo interno, ma si basa su di esso. Linguaggi come ActionScript, JavaScript, JScript utilizzano tutti ECMAScript come base. A titolo di confronto, AS / JS / JScript sono 3 auto diverse, ma usano tutte lo stesso motore ... ognuno dei loro esterni è diverso, e sono state apportate diverse modifiche a ciascuna per renderlo unico.

La storia è che Brendan Eich ha creato Mocha che è diventato LiveScript e successivamente JavaScript. Netscape ha presentato JavaScript a Ecma International , che sviluppa standard ed è stato rinominato ECMA-262 aka ECMAScript.

È importante notare che "JavaScript" di Brendan Eich non è lo stesso JavaScript che è un dialetto di ECMAScript. Ha costruito il linguaggio di base che è stato rinominato ECMAScript, che differisce da JavaScript che i fornitori di browser implementano al giorno d'oggi.

http://en.wikipedia.org/wiki/ECMAScript


33
Questo non rende Javascript un sottoinsieme di ECMAScript, se ECMAScript è il nucleo?
Ryan Amos

15
JavaScript (storicamente) ha cose che ECMAScript non ha. JavaScript (storicamente cerca di) avere tutto ciò che ha ECMAScript. Pertanto il post è corretto, ECMAScript è un sottoinsieme di JavaScript. Tuttavia, entrambi sono tenuti abbastanza vicini l'uno all'altro (mentre ActionScript non è più considerato un linguaggio ECMAScript, si è discostato così tanto, sebbene avesse le sue radici in esso). I termini ES e JS sono quasi intercambiabili.
Nathan Wall,

22
Non credo sia corretto affermare che "ECMAScript è un sottoinsieme di JavaScript". Invece, l'articolo di Wikipedia che citi indica che ECMAScript è uno standard e che JavaScript è un'implementazione ben nota di quello standard (con estensioni) .
DavidRR

2
Penso che ECMAScript is a superset of Javascript
volessi

6
Poiché Javascript implementa ECMAScript e si basa anche su di esso, direi che Javascript è quindi un superset di ECMAScript.
RayLoveless


32

ECMAScript = ES:

  • ECMAScript è uno standard per linguaggi di scripting.

  • Linguaggi come Javascript sono basati sullo standard ECMAScript.

  • Lo standard ECMA si basa su diverse tecnologie originarie, le più note sono JavaScript (Netscape) e JScript (Microsoft).

  • ECMA significa European Computer Manufacturer's Association


Dall'altro lato:


JavaScript = JS:

  • JavaScript è l'implementazione più popolare dello standard ECMAScript.

  • Le caratteristiche principali di Javascript si basano sullo standard ECMAScript, ma Javascript ha anche altre funzionalità aggiuntive che non sono nelle specifiche / standard ECMA.

  • ActionScript e JScript sono altri linguaggi che implementano ECMAScript.

  • JavaScript è stato inviato a ECMA per la standardizzazione, ma a causa di problemi con il marchio Javascript, lo standard è stato chiamato ECMAScript.

  • Ogni browser ha un interprete JavaScript.


Per maggiori dettagli su questo checkout la mia risposta completa qui Qual è la differenza tra JavaScript ed ECMAScript?


quasi tutti i browser supportano JavaScript, ma ci sono molti browser CLI come link e lynx che non lo fanno, oltre a questi ci sono: links2, w3m, elinks ed edbrowse. Anche la maggior parte dei browser CLI non supporta JS.
Cassio Seffrin

16

ECMA sta per - European Computer Manufacturer's Association. ECMAScript è uno standard per un linguaggio di scripting. Specifica le funzionalità principali che un linguaggio di scripting dovrebbe fornire e come tali funzionalità dovrebbero essere implementate. Javascript è stato originariamente creato in Netscape e volevano standardizzare il linguaggio. Quindi, hanno presentato la lingua alla European Computer Manufacturer's Association (ECMA) per la standardizzazione. Ma c'erano problemi di marchio con il nome Javascript e lo standard divenne chiamato ECMAScript, che è anche il nome che detiene oggi.

Quindi puoi usare qualsiasi linguaggio di scripting che implementa lo standard ECMA poiché i browser web supportano l'interpretazione ECMAScript quando specifichi ( <script type="text/ecmascript">).


2

ECMA è l'organizzazione che ha standardizzato JavaScript. Hanno chiamato il linguaggio ECMAScript, tuttavia "JavaScript" è stato il termine che ha vinto il "concorso per i nomi"


1

Ecco una visione diversa su questo argomento. È più o meno per esperienza, non posso citare nulla. Qualsiasi validatore JavaScript e chiunque lavori con JavaScript te lo dirà

alert("hello World");

è JavaScript valido. E sono anche d'accordo.

Tuttavia, un validatore ECMAScript probabilmente ti dirà che non è valido, perché alert () non fa parte di ECMAScript, ma una caratteristica tipica di JavaScript per browser. Ci sono molte caratteristiche di JavaScript, che hanno senso solo in un ambiente browser, fi window.navigator, window.document, WebSocket, navigator.geolocation. Alcuni direbbero addirittura che questo non fa parte di JavaScript, ma parte di HTML5, il che non è vero, perché HTML5 è solo il linguaggio di markup. Tuttavia, queste nuove fantasiose funzionalità sono spesso chiamate HTML5, anche se sono implementate in JavaScript.

JavaScript può essere utilizzato anche per lo scripting lato server. Quindi tutta la geolocalizzazione o le API dei media non hanno senso. Quindi JavaScript per lo scripting lato server è molto più vicino a ECMAScript, che non ha queste caratteristiche tipiche del browser.

Non sono riuscito a scoprire se l'oggetto Math (ad esempio Math.sqrt (9)) fa parte di ECAMScript, o se ECMAScript definisce davvero solo la sintassi del linguaggio e non ha alcuna funzionalità incorporata. Ma un validatore ECMAScript accettava Math.sqrt (9) come ECMAScript valido, mentre var test = window.document; non ha superato la convalida ECMA.

Anche se il seguente link a una documentazione JavaScript, questo a mio parere è il set di funzionalità (oggetti e funzioni) di ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Quindi, a mio parere, JavaScript è strettamente legato ai browser, mentre ECMAScript ha in realtà solo un insieme di funzionalità di base (se non del tutto).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.