Risposte:
ECMAScript è il linguaggio, mentre JavaScript, JScript e persino ActionScript 3 sono chiamati "dialetti". Wikipedia fa luce su questo.
Penso che una piccola lezione di storia sia dovuta.
JavaScript è stato originariamente chiamato Mocha e modificato in Livescript ma alla fine è diventato JavaScript.
È importante notare che JavaScript è venuto prima di ECMAscript e la storia ti dirà 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 che somigliasse a Java per il web per Netscape.
Eich, tuttavia, decise che Java era troppo complicato con tutte le sue regole e così decise di creare un linguaggio più semplice in cui anche un principiante potesse codificare. Questo è evidente in cose 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 consentire loro di nominarlo JavaScript come acrobazia di marketing e quindi perché la maggior parte delle persone che non hanno mai usato JavaScript pensano che sia correlato a Java.
Circa un anno o due dopo il rilascio di JavaScript nel browser, IE di Microsoft ha preso la lingua 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 dovette chiudere il suo progetto.
Prima che Netscape fallisse, decisero di avviare uno standard che guidasse il percorso di JavaScript, chiamato ECMAScript.
ECMAScript ha avuto alcune versioni e nel 1999 hanno rilasciato la loro ultima versione (ECMAScript 3) prima di andare in letargo per i successivi 10 anni. Durante questi 10 anni, Microsoft ha dominato le scene, ma allo stesso tempo non stavano migliorando il loro prodotto e quindi è nato Firefox (guidato da Eich) e un mucchio di altri browser come Chrome, Opera.
ECMAScript ha pubblicato 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 è programmato per rilasciare la sua sesta edizione tra qualche mese con i maggiori cambiamenti che ha avuto finora.
È possibile utilizzare un elenco di funzioni per ECMAScript 6 qui http://kangax.github.io/es5-compat-table/es6/ e anche il supporto del browser. Puoi persino iniziare a scrivere Ecmascript 6 come fai con CoffeeScript e utilizzare 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 esiste un compilatore che esegua ECMAScript e credo che JavaScript sia considerato il linguaggio che implementa uno standard chiamato ECMAScript.
Esistono anche altri linguaggi evidenti che implementano ECMAScript come ActionScript (usato per Flash)
ECMAScript = ES:
ECMAScript è uno standard per i linguaggi di scripting.
Lingue come Javascript si basano sullo standard ECMAScript.
Lo standard ECMA si basa su diverse tecnologie di origine, la più nota delle quali è JavaScript (Netscape) e JScript (Microsoft).
ECMA significa Associazione europea dei produttori di computer
JavaScript = JS:
JavaScript è l'implementazione più popolare dello standard ECMAScript.
Le funzionalità 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 all'ECMA per la standardizzazione ma a causa di problemi di marchio con il nome Javascript lo standard è stato chiamato ECMAScript.
Ogni browser ha un interprete JavaScript.
ES5 = ECMAScript 5:
ES5 è una versione di ECMAScript (vecchia / attuale).
ES5 è il JavaScript che conosci e utilizzi oggi nel browser.
ES5 non richiede un passaggio di costruzione (transpiler) per trasformarlo in qualcosa che verrà eseguito nei browser di oggi.
La versione 5 di ECMAScript è stata completata a dicembre 2009, le ultime versioni di tutti i principali browser (Chrome, Safari, Firefox e IE) hanno implementato la versione 5.
La versione 5.1 è stata completata nel 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 del linguaggio principale affrontate in TypeScript e CoffeeScript.
ES6 è la prossima iterazione di JavaScript, ma non viene eseguita nei browser di oggi.
Esistono alcuni transpiler che esporteranno ES5 per l'esecuzione nei browser.
BabelJS:
BabelJS è il transpiler più popolare che trasforma il nuovo JavaScript ES6 in Old JavaScript ES5.
BabelJS rende possibile la scrittura della prossima generazione di JavaScript oggi (significa ES2015).
BabelJS prende semplicemente il file ES2015 e lo trasforma in file ES5.
Le versioni correnti dei browser ora possono comprendere il nuovo codice JavaScript (ES2015), anche se non lo supportano ancora.
TypeScript e CoffeeScript:
Entrambi forniscono zucchero sintattico in cima a ES5 e quindi vengono transcompilati in JavaScript conforme a ES5.
Scrivi TypeScript o CoffeeScript, quindi il transpiler lo trasforma in JavaScript ES5.
JavaScript = ECMAScript + DOM + BOM ;
La specifica del linguaggio ECMAScript® definisce tutta la logica per la creazione e la modifica di oggetti, array, numeri, ecc ...
DOM ( D DOCUMENTO O bject M odello) permette di comunicare con i documenti HTML / XML (ad esempio document.getElementById('id');
).
BOM ( B rower O bject M odel) è la gerarchia degli oggetti del browser (ad es. Oggetto posizione, oggetto storia, elementi modulo).
Storia della denominazione JavaScript:
Moka ► LiveScript ► JavaScript ► (parte di JS risultante) ECMA-262 ► ECMAScript ► JavaScript (costituito da ECMAScript + DOM + BOM)
JavaScript = ECMAScript + DOM API;
?
JavaScript = ECMAScript + DOM API;
si basa solo sui termini documentati concordati nel complesso costituiti da JavaScript.
Tecnicamente ECMAScript è il linguaggio 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 apparentemente ECMAScript, tuttavia JavaScript (il nome) ora rimane in giro sia per motivi di denominazione tradizionali, sia come termine di marketing di Mozilla per le loro varie estensioni non standard (che vogliono poter effettivamente "versione" )
Che cos'è ECMAScript ovvero ES?
ECMAScript è uno standard per un linguaggio di scripting e il linguaggio Javascript si basa sullo standard ECMAScript.
Javascript è esattamente uguale a ECMAScript?
JavaScript = ECMAScript + API DOM;
API DOM come: document.getElementById('id');
Altre lingue usano lo standard ECMAScript?
Perché si chiama ECMAScript?
so che questo è un vecchio post, ma spero che questo possa aiutare qualcuno.
Negli anni '90, diverse versioni di js iniziarono a emergere come javascript da netscape, lo script Js di Microsoft. Quindi ecmascript è stato introdotto come standard. Ma ecmascript costituisce solo una parte di javascript che specifica la sua sintassi principale, tipi, oggetti ecc. Probabilmente ciò spiega le implementazioni incoerenti di javascript attraverso diff. i browser
Riferimento - Wrox (Javascript professionale per sviluppatori Web)
JavaScript è un linguaggio ECMAScript.
ECMAScript non è necessariamente JavaScript.
Le risposte esistenti parafrasano abbastanza bene il punto principale.
Il punto principale è che ECMAScript è il semplice linguaggio astratto, senza estensioni specifiche del dominio, è inutile in sé. La specifica definisce solo il linguaggio e gli oggetti principali di esso.
Mentre JavaScript, ActionScript e altri dialetti aggiungono la libreria specifica del dominio, in modo da poterlo usare per qualcosa di significativo.
Esistono molti motori ECMAScript , alcuni sono open source, altri sono proprietari. Puoi collegarli al tuo programma, quindi aggiungere le tue funzioni native all'oggetto globale in modo che il tuo programma diventi programmabile. Anche se il più delle volte vengono utilizzati nei browser.
Javascript era il nome originale, inteso a sfruttare la popolarità di Java. L'ECMA è l'ente normativo che sovrintende allo standard che alla fine è stato messo in atto, quindi i nomi sono approssimativamente equivalenti.
Le implementazioni hanno altri nomi, come V8 o Rhino, ecc.
ECMAScript è uno standard per JavaScrip t, guarda queste affermazioni da MDN :
JavaScript (JS) è un linguaggio di programmazione interpretato o compilato JIT leggero con funzioni di prima classe. Mentre è più noto come linguaggio di scripting per le pagine Web, molti ambienti non browser lo usano anche, come node.js, Apache CouchDB e Adobe Acrobat. JavaScript è un linguaggio dinamico basato su prototipi, multi-paradigma, che supporta stili orientati agli oggetti, imperativi e dichiarativi (ad es. Programmazione funzionale). Ulteriori informazioni su JavaScript.
Lo standard per JavaScript è ECMAScript . A partire dal 2012, tutti i browser moderni supportano pienamente 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 è ufficialmente denominata ECMAScript 2015 e inizialmente è stata denominata ECMAScript 6 o ES6. Da allora, gli standard ECMAScript sono sui cicli di rilascio annuali. Questa documentazione fa riferimento all'ultima versione della bozza, che è attualmente ECMAScript 2018.
Per maggiori informazioni, visita qui
Ecco i miei risultati:
JavaScript: The Definitive Guide , scritto da David Flanagan fornisce una spiegazione molto concisa:
JavaScript è stato creato su Netscape nei primi giorni del Web e tecnicamente "JavaScript" è un marchio concesso in licenza da Sun Microsystems (ora Oracle) utilizzato per descrivere l'implementazione del linguaggio da parte di Netscape (ora Mozilla). Netscape ha presentato il linguaggio per la standardizzazione all'ECMA e, a causa di problemi con i marchi, la versione standardizzata del linguaggio è stata bloccata con il nome scomodo "ECMAScript". Per gli stessi motivi del marchio, la versione del linguaggio di Microsoft è formalmente conosciuta come "JScript". In pratica, quasi tutti chiamano la lingua JavaScript.
Un post sul blog di Microsoft sembra essere d'accordo con ciò che Flanagan spiega dicendo ..
ECMAScript è il nome ufficiale per il linguaggio JavaScript che tutti conosciamo e amiamo.
.. che mi fa pensare tutte le occorrenze di JavaScript
in questo messaggio di riferimento (da parte di Microsoft di nuovo) devono essere sostituiti con ECMASCript
. In realtà sembrano stare attenti a usare ECMAScript
solo in questo pagina di documentazione più recente e più tecnica.
w3schools.com sembra essere d'accordo con le definizioni sopra:
JavaScript è stato inventato da Brendan Eich nel 1995 e divenne 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 , incontrerai la seguente dichiarazione:
Deprecato. Il controllo esplicito delle versioni e l'attivazione delle funzionalità del linguaggio erano specifici di Mozilla e sono in fase 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 ora spesso menzionate con la loro definizione iniziale nelle edizioni ECMA-262 come ECMAScript 2015.
e quando vedi le note di rilascio recenti, vedrai sempre riferimenti agli standard ECMAScript, come:
La proprietà Symbol2toStringTag ES2015 è stata implementata (bug 1114580).
Sono stati implementati i metodi TypedArray.prototype.toString () e TypedArray.prototype.toLocaleString () ES2015 (bug 1121938).
Mozilla Web Docs ha anche una pagina che spiega la differenza tra ECMAScript e JavaScript:
Tuttavia, il termine ombrello "JavaScript", 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
Per quanto ne so, le persone usano la parola JavaScript in qualche modo liberamente per fare riferimento alla specifica ECMAScript di base.
Direi che tutte le moderne implementazioni JavaScript (o motori JavaScript) sono in realtà implementazioni ECMAScript. Controlla la definizione del motore V8 da Google, ad esempio:
V8 è il motore JavaScript ad alte prestazioni open source di Google, 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 nell'ECMA-262.
Sembrano usare la parola JavaScript ed ECMAScript in modo intercambiabile, e direi che in realtà è un motore ECMAScript?
Quindi la maggior parte dei motori JavaScript sta implementando lo standard ECMAScript, ma invece di chiamarli motori ECMAScript, si definiscono motori JavaScript. Questa risposta supporta anche il modo in cui vedo la situazione.
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 è una branca delle lingue formata 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 che un altro linguaggio popolare formato attorno allo standard ECMA Script è ActionScript, utilizzato in Adobe Flash / Flex.