Qual è la differenza tra JavaScript e ECMAScript?

Qual è la differenza tra ECMAScript e JavaScript? Da quello che ho dedotto, ECMAScript è lo standard e JavaScript è l’implementazione. È corretto?

ECMAScript è la lingua, mentre JavaScript, JScript e anche ActionScript 3 sono chiamati “dialetti”. Wikipedia getta luce su questo.

Penso che sia dovuta una piccola lezione di storia.

JavaScript è stato originariamente chiamato Mocha e modificato in Livescript, ma alla fine è diventato JavaScript.

È importante notare che JavaScript è arrivato prima di ECMAscript e la cronologia ti spiegherà perché.

Per iniziare dall’inizio, JavaScript ha derivato il suo nome da Java e inizialmente a Brendan Eich (il creatore di JS) è stato chiesto di sviluppare un linguaggio simile a Java per il web per Netscape.

Eich, tuttavia, ha deciso che Java era troppo complicato con tutte le sue regole e quindi ha deciso di creare un linguaggio più semplice che potesse essere utilizzato anche da un principiante. Ciò è evidente in aspetti come il rilassamento della necessità di avere un punto e virgola.

Dopo che il linguaggio è stato completato, il team di marketing di Netscape ha richiesto a Sun di consentirgli di chiamarlo JavaScript come prodezza di marketing e, quindi, perché la maggior parte delle persone che non hanno mai usato JavaScript pensano che sia correlata a Java.

Circa un anno o due dopo il rilascio di JavaScript nel browser, Microsoft IE ha preso il linguaggio e ha iniziato a realizzare le proprie implementazioni come JScript. Allo stesso tempo, IE stava dominando il mercato e non molto tempo dopo che Netscape doveva chiudere il suo progetto.

Prima che Netscape fallisse, decisero di avviare uno standard che guidasse il percorso di JavaScript, chiamato ECMAScript.

ECMAScript ha pubblicato alcune versioni e nel 1999 ha pubblicato l’ultima versione (ECMAScript 3) prima che entrassero in ibernazione per i prossimi 10 anni. Durante questi 10 anni, Microsoft ha dominato le scene ma allo stesso tempo non stavano migliorando il loro prodotto e quindi Firefox è nato (guidato da Eich) e un mucchio di altri browser come Chrome, Opera.

ECMAScript ha rilasciato la sua 5a edizione nel 2009 (la 4a edizione è stata abbandonata) con funzionalità come la modalità rigorosa. Da allora, ECMAScript ha guadagnato molto slancio ed è in programma di rilasciare la sua sesta edizione tra qualche mese, con i maggiori cambiamenti che ha avuto finora.

È ansible utilizzare un elenco di funzionalità per ECMAScript 6 qui http://kangax.github.io/es5-compat-table/es6/ e anche il supporto del browser. Puoi anche iniziare a scrivere Ecmascript 6 come fai con CoffeeScript e usare un compilatore per compilare fino a Ecmascript 5.

Se ECMAScript è la lingua e JavaScript è un dialetto è discutibile, ma non importante. Se continui a pensare in questo modo, potresti confonderti. Non ci sono compilatori che eseguono ECMAScript e credo che JavaScript sia considerato il linguaggio che implementa uno standard chiamato ECMAScript.

Esistono anche altri linguaggi notevoli che implementano ECMAScript come ActionScript (utilizzato per Flash)

ECMAScript = ES:

  • ECMAScript è uno standard per i linguaggi di scripting.

  • Linguaggi come Javascript sono basati sullo standard ECMAScript.

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

  • ECMA significa Associazione europea dei produttori di computer

JavaScript = JS:

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

  • Le funzioni principali di Javascript sono basate 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 presentato ad ECMA per la standardizzazione, ma a causa di problemi relativi ai marchi con il nome Javascript lo standard è diventato chiamato ECMAScript.

  • Ogni browser ha un interprete JavaScript.

ES5 = ECMAScript 5:

  • ES5 è una versione di ECMAScript (vecchia / corrente).

  • ES5 è il codice JavaScript che conosci e utilizzi nel browser oggi.

  • ES5 non richiede un passo di costruzione (transpilers) per trasformarlo in qualcosa che verrà eseguito nei browser di oggi.

  • ECMAScript versione 5 è stato completato nel dicembre 2009, le versioni più recenti di tutti i principali browser (Chrome, Safari, Firefox e IE) hanno implementato la versione 5.

  • La versione 5.1 era finita a giugno 2011.

ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:

  • ES2015 è una versione di ECMAScript (nuova / futura).

  • Ufficialmente il nome ES2015 dovrebbe essere usato al posto di ES6.

  • ES6 affronterà molte delle carenze linguistiche di base affrontate in TypeScript e CoffeeScript.

  • ES6 è la successiva iterazione di JavaScript, ma non viene eseguita nei browser di oggi.

  • Ci sono parecchi transporter che esporteranno ES5 per l’esecuzione nei browser.

BabelJS:

  • BabelJS è il transpiler più popolare che trasforma i nuovi JavaScript ES6 in Old JavaScript ES5.

  • BabelJS rende ansible la scrittura della prossima generazione di JavaScript oggi (significa ES2015).

  • BabelJS prende semplicemente il file ES2015 e lo trasforma in un file ES5.

  • Le versioni attuali dei browser ora possono comprendere il nuovo codice JavaScript (ES2015), anche se non lo supportano ancora.

TypeScript e CoffeeScript:

  • Entrambi forniscono zucchero sintattico su ES5 e quindi sono tradotti in JavaScript compatibile con ES5.

  • Scrivi TypeScript o CoffeeScript, quindi il transpiler lo trasforma in ES5 JavaScript.

Tecnicamente ECMAScript è la lingua che tutti usano e implementano: è la specifica creata molti anni fa quando Netscape e Microsoft si sedettero e tentarono di standardizzare lo scripting tra JavaScript (linguaggio di scripting di Netscape) e JScript (Microsoft).

Successivamente tutti questi motori stanno implementando ECMAScript, tuttavia JavaScript (il nome) ora si blocca sia per i tradizionali motivi di denominazione, sia come termine di marketing di Mozilla per le loro varie estensioni non standard (che vogliono essere effettivamente in grado di “versione” )

JavaScript = ECMAScript + DOM API ;

  • La specifica del linguaggio ECMAScript® definisce tutta la logica per creare e modificare oggetti, matrici, numeri, ecc …

  • DOM API rende ansible la comunicazione con documenti HTML / XML (es. document.getElementById('id'); ).

Storia della denominazione JavaScript:

Mocha ► LiveScript ► JavaScript ► (parte di JS ha comportato) ECMA-262 ► ECMAScript ► JavaScript (costituito da ECMAScript + DOM API)

Cos’è ESM ECMAScript?

ECMAScript è uno standard per un linguaggio di scripting e il linguaggio Javascript è basato sullo standard ECMAScript.

Javascript è esattamente lo stesso di ECMAScript?

  • No, Javascript non è esattamente equivalente a ECMAScript.
  • Le funzioni principali di Javascript sono basate sullo standard ECMAScript, ma Javascript ha anche altre funzionalità aggiuntive che non sono nelle specifiche / standard ECMA.

JavaScript = ECMAScript + DOM API;

API DOM come: document.getElementById('id');

Le altre lingue usano lo standard ECMAScript?

  • Sì, esistono linguaggi diversi da JavaScript che implementano anche lo standard ECMAScript come nucleo.
  • ActionScript (utilizzato da Adobe Flash) e JScript (utilizzato da Microsoft) sono entrambi linguaggi che implementano lo standard ECMAScript.

Perché si chiama ECMAScript?

  • Javascript è stato originariamente creato in Netscape e voleva standardizzare la lingua. Quindi, hanno presentato la lingua alla Commissione europea per l’omologazione dei produttori (ECMA) per la standardizzazione.
  • Ma c’erano problemi di marchio con il nome Javascript, e lo standard si chiamava ECMAScript, che è il nome che detiene anche oggi.
  • A causa dei problemi relativi ai marchi, la versione Microsoft del linguaggio è chiamata JScript, anche se JScript è, nella sua essenza, la stessa lingua di Javascript.

< Aggiornamento: > Per coloro che hanno a cuore la storia

  • 1995: originariamente chiamato Mocha e cambiato in Livescript
  • 1997: viene stabilito lo standard ECMAScript
  • 1999: esce ES3 e IE5 è di gran moda
  • 2000-2005: XMLHttpRequest, alias AJAX, guadagna popolarità in app come Outlook Web Access (2000) e Oddpost (2002), Gmail (2004) e Google Maps (2005).
  • 2009: esce ES5 (questo è ciò che molti di noi ora usano) con forEach, Object.keys, Object.create (specialmente per Douglas Crockford) e standard JSON
  • 2015: esce ES6 / ECMAScript2015; ha soprattutto zucchero sintattico, perché le persone non erano in grado di concordare su qualcosa di più innovativo (ES7?)

Varie versioni JavaScript sono implementazioni dello standard ECMAScript.

so che questo è un vecchio post, ma spero che questo possa aiutare qualcuno.

Negli anni ’90 le diverse versioni di js iniziarono ad uscire come javascript da netscape, script Js di Microsoft. Quindi ecmascript è stato introdotto come standard. Ma ecmascript forma solo una parte di javascript che specifica la sua syntax principale, tipi, oggetti, ecc. Probabilmente questo spiega le implementazioni incoerenti di javascript attraverso diff. i browser

Riferimento – Wrox (Javascript professionale per sviluppatori Web)

Nella mia comprensione, ECMAScript è la “Teoria” o “Specifica” e Javascript è “Pratica” o “Implementazione”.

JavaScript è un linguaggio ECMAScript.

ECMAScript non è necessariamente JavaScript.

Le risposte esistenti parafrasano abbastanza bene il punto principale.

Il punto principale è che ECMAScript è il linguaggio astratto, senza estensioni specifiche del dominio, è inutile di per sé. Le specifiche definiscono solo il linguaggio e gli oggetti principali di esso.

Mentre JavaScript e ActionScript e altri dialetti aggiungono la libreria specifica del dominio ad esso, così puoi usarlo per qualcosa di significativo.

Esistono molti motori ECMAScript , alcuni dei quali sono open source, altri sono proprietari. Puoi collegarli al tuo programma, quindi aggiungere le tue funzioni native all’object globale in modo che il tuo programma diventi script. Sebbene il più delle volte sono utilizzati nei browser.

Javascript era il nome originale, inteso a capitalizzare la popolarità di java. L’ECMA è l’organismo degli standard che sovrintende lo standard che è stato infine messo in atto in modo che i nomi siano approssimativamente equivalenti.

Le implementazioni hanno altri nomi, come V8 o Rhino, ecc.

Dubito che avremmo mai usato la parola “ECMAScript” se non per il fatto che il nome “JavaScript” è di proprietà di Sun. A tutti gli effetti, la lingua è JavaScript. Non vai in libreria alla ricerca di libri ECMAScript, vero?

È un po ‘troppo semplice dire che “JavaScript” è l’implementazione. JScript è l’implementazione di Microsoft.

JavaScript è un ramo di lingue formato attorno allo standard ECMAScript. Credo che l’ECMA sia l’associazione europea dei produttori di computer, non che questo sia veramente rilevante o altro.

Non dimenticare un altro linguaggio popolare formato attorno allo standard ECMA Script è ActionScript, utilizzato in Adobe Flash / Flex.

ECMAScript è uno standard per JavaScrip t, guarda queste dichiarazioni da MDN :

inserisci la descrizione dell'immagine qui

JavaScript

JavaScript (JS) è un linguaggio di programmazione leggero interpretato o JIT-compilato con funzioni di prima class. Sebbene sia molto conosciuto come linguaggio di scripting per le pagine Web, anche molti ambienti non di browser lo utilizzano, come node.js, Apache CouchDB e Adobe Acrobat. JavaScript è un linguaggio dinamico basato su prototipo, multi-paradigma, che supporta stili orientati agli oggetti, imperativi e dichiarativi (es. Programmazione funzionale). Maggiori informazioni su JavaScript.


ECMAScript

Lo standard per JavaScript è ECMAScript . A partire dal 2012, tutti i browser moderni supportano completamente ECMAScript 5.1. I browser meno recenti supportano almeno ECMAScript 3. Il 17 giugno 2015, ECMA International ha pubblicato la sesta versione principale di ECMAScript, che viene ufficialmente chiamata ECMAScript 2015 e inizialmente denominata ECMAScript 6 o ES6. Da allora, gli standard ECMAScript sono in cicli di rilascio annuali. Questa documentazione si riferisce all’ultima versione della bozza, che è attualmente ECMAScript 2018.

Per maggiori informazioni, visita qui

ECMAScript non è altro che uno standard o una specifica definiti al fine di creare diversi linguaggi di scripting e uno di essi sembra essere JavaScript. È stato creato con l’unico scopo di compatibilità cross-browser

Uno standard garantisce che se qualcuno scrive un codice seguendo le regole dello standard, il codice funzionerà correttamente in un browser (in caso di javascript) se il browser implementa lo stesso standard.

Perché abbiamo bisogno di uno standard?

Quando JavaScript è stato creato per la prima volta da Netscape, si è verificata una guerra tra tutti i fornitori di browser sul mercato. Microsoft ha implementato la propria versione di javascript in Internet Explorer. Allo stesso modo, altri produttori di browser hanno implementato le proprie versioni.

Tutto ciò ha creato un grosso problema per gli sviluppatori. Un codice funzionava bene su Netscape ma era uno spreco totale su Internet Explorer. Per risolvere la compatibilità tra browser, Javascript è stato standardizzato da ECMA international; da qui il nome ECMAscript.

Tutti i browers hanno concordato di implementare ECMAscript (anche se ci è voluto un sacco di tempo).

Il risultato è che ora lo stesso codice funziona bene in tutti i browser.

L’eccezione è DOM (Document object model). DOM è ancora interpretato in modi diversi in diversi browser. Tuttavia ci sono buone notizie. Lentamente tutti i browser aderiscono allo stesso standard DOM.

Ecco i miei risultati:

JavaScript: The Definitive Guide , scritto da David Flanagan fornisce una spiegazione molto concisa:

JavaScript è stato creato in Netscape nei primi giorni del Web e tecnicamente “JavaScript” è un marchio concesso in licenza da Sun Microsystems (ora Oracle) utilizzato per descrivere l’implementazione della lingua di Netscape (ora Mozilla). Netscape ha presentato la lingua per la standardizzazione all’ECMA e, a causa di problemi relativi ai marchi, la versione standardizzata della lingua era bloccata con il nome scomodo “ECMAScript”. Per le stesse ragioni di marchio, la versione Microsoft della lingua è formalmente conosciuta come “JScript”. In pratica, quasi tutti chiamano la lingua JavaScript.

Un post sul blog di Microsoft sembra essere d’accordo con quello che spiega Flanagan dicendo …

ECMAScript è il nome ufficiale per il linguaggio JavaScript che tutti conosciamo e amiamo.

.. che mi fa pensare che tutte le occorrenze di JavaScript in questo post di riferimento (di nuovo da Microsoft) devono essere sostituite da ECMASCript . In realtà sembrano stare attenti a usare ECMAScript solo in questa pagina di documentazione più recente e più tecnica.

w3schools.com sembra essere d’accordo con le definizioni di cui sopra:

JavaScript è stato inventato da Brendan Eich nel 1995 ed è diventato uno standard ECMA nel 1997. ECMA-262 è il nome ufficiale dello standard. ECMAScript è il nome ufficiale della lingua.

La chiave qui è: il nome ufficiale della lingua .

Se controlli le pagine della versione JavaScript di Mozilla , troverai la seguente dichiarazione:

Deprecato. La versione e l’triggerszione esplicite delle funzionalità linguistiche erano specifiche di Mozilla e sono in corso di rimozione. Firefox 4 era l’ultima versione che faceva riferimento a una versione JavaScript (1.8.5). Con i nuovi standard ECMA, le funzionalità del linguaggio JavaScript sono spesso citate con la loro definizione iniziale in ECMA-262 Edizioni come ECMAScript 2015.

e quando vedi le note di rilascio recenti, vedrai sempre il riferimento agli standard ECMAScript, come ad esempio:

  • La proprietà Symbol.toStringTag ES2015 è stata implementata (bug 1114580).

  • I metodi ES2015 TypedArray.prototype.toString () e TypedArray.prototype.toLocaleString () sono stati implementati (bug 1121938).

Mozilla Web Docs ha anche una pagina che spiega la differenza tra ECMAScript e JavaScript:

Tuttavia, il termine generico “JavaScript” come inteso in un contesto di browser Web contiene diversi elementi molto diversi. Uno di questi è il linguaggio principale (ECMAScript), un altro è la raccolta delle API Web, incluso il DOM (Document Object Model).

Conclusione

A mio modo di vedere, le persone usano la parola JavaScript in qualche modo in modo liberale per fare riferimento alle specifiche principali di ECMAScript.

Direi che tutte le moderne implementazioni di JavaScript (o JavaScript Engines) sono in effetti implementazioni ECMAScript. Controlla la definizione del motore V8 di Google, ad esempio:

V8 è il motore JavaScript ad alte prestazioni di Google open source, scritto in C ++ e utilizzato in Google Chrome, il browser open source di Google e in Node.js, tra gli altri. Implementa ECMAScript come specificato in ECMA-262.

Sembrano utilizzare la parola JavaScript e ECMAScript in modo intercambiabile, e direi che in realtà è un motore ECMAScript?

Quindi la maggior parte dei motori JavaScript implementano effettivamente lo standard ECMAScript, ma invece di chiamarli motori ECMAScript, si chiamano motori JavaScript. Questa risposta supporta anche il modo in cui vedo la situazione.