¿Cuál es la diferencia entre ECMAScript y JavaScript? De lo que deduje, ECMAScript es el estándar y JavaScript es la implementación. ¿Es esto correcto?
javascript
ecma262
Chico
fuente
fuente
Creo que se debe una pequeña lección de historia.
Originalmente, JavaScript se llamaba Mocha y se cambió a Livescript, pero finalmente se convirtió en JavaScript.
Es importante tener en cuenta que JavaScript vino antes de ECMAscript y el historial le dirá por qué.
Para comenzar desde el principio, JavaScript deriva su nombre de Java e inicialmente se le pidió a Brendan Eich (el creador de JS) que desarrollara un lenguaje que se asemejara a Java para la web para Netscape.
Eich, sin embargo, decidió que Java era demasiado complicado con todas sus reglas y se propuso crear un lenguaje más simple que incluso un principiante pudiera codificar. Esto es evidente en cosas como la relajación de la necesidad de tener un punto y coma.
Una vez que se completó el lenguaje, el equipo de marketing de Netscape solicitó a Sun que les permitiera nombrarlo JavaScript como un truco de marketing y, por lo tanto, por qué la mayoría de las personas que nunca han usado JavaScript piensan que está relacionado con Java.
Aproximadamente uno o dos años después del lanzamiento de JavaScript en el navegador, el IE de Microsoft tomó el lenguaje y comenzó a hacer sus propias implementaciones, como JScript. Al mismo tiempo, IE dominaba el mercado y poco después Netscape tuvo que cerrar su proyecto.
Antes de que Netscape cayera, decidieron comenzar un estándar que guiaría la ruta de JavaScript, llamado ECMAScript.
ECMAScript tuvo algunos lanzamientos y en 1999 lanzaron su última versión (ECMAScript 3) antes de entrar en hibernación durante los próximos 10 años. Durante estos 10 años, Microsoft dominó las escenas, pero al mismo tiempo no estaban mejorando su producto y, por lo tanto, nació Firefox (liderado por Eich) y un montón de otros navegadores como Chrome, Opera.
ECMAScript lanzó su quinta edición en 2009 (la cuarta edición fue abandonada) con características como el modo estricto. Desde entonces, ECMAScript ha ganado mucho impulso y está programado para lanzar su sexta edición en unos pocos meses a partir de ahora con los mayores cambios que ha tenido hasta ahora.
Puede usar una lista de características para ECMAScript 6 aquí http://kangax.github.io/es5-compat-table/es6/ y también el soporte del navegador. Incluso puede comenzar a escribir Ecmascript 6 como lo hace con CoffeeScript y usar un compilador para compilar hasta Ecmascript 5.
Si ECMAScript es el lenguaje y JavaScript es un dialecto es discutible, pero no importante. Si continúa pensando así, podría confundirlo. No existe un compilador que ejecute ECMAScript, y creo que JavaScript se considera el lenguaje que implementa un estándar llamado ECMAScript.
También hay otros lenguajes notables que implementan ECMAScript como ActionScript (utilizado para Flash)
fuente
ECMAScript = ES:
ECMAScript es un estándar para lenguajes de script.
Los lenguajes como Javascript se basan en el estándar ECMAScript.
El estándar ECMA se basa en varias tecnologías de origen, la más conocida es JavaScript (Netscape) y JScript (Microsoft).
ECMA significa Asociación Europea de Fabricantes de Computadoras
JavaScript = JS:
JavaScript es la implementación más popular del estándar ECMAScript.
Las características principales de Javascript se basan en el estándar ECMAScript, pero Javascript también tiene otras características adicionales que no están en las especificaciones / estándar de ECMA.
ActionScript y JScript son otros lenguajes que implementan el ECMAScript.
JavaScript se envió a ECMA para la estandarización, pero debido a problemas de marca registrada con el nombre Javascript, el estándar se llamó ECMAScript.
Cada navegador tiene un intérprete de JavaScript.
ES5 = ECMAScript 5:
ES5 es una versión del ECMAScript (antiguo / actual).
ES5 es el JavaScript que conoce y usa en el navegador hoy.
ES5 no requiere un paso de compilación (transpiladores) para transformarlo en algo que se ejecute en los navegadores actuales.
La versión 5 de ECMAScript se terminó en diciembre de 2009, las últimas versiones de todos los principales navegadores (Chrome, Safari, Firefox e IE) han implementado la versión 5.
La versión 5.1 se terminó en junio de 2011.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 es una versión del ECMAScript (nuevo / futuro).
Oficialmente, se debe usar el nombre ES2015 en lugar de ES6.
ES6 abordará muchas de las deficiencias del lenguaje central tratadas en TypeScript y CoffeeScript.
ES6 es la próxima iteración de JavaScript, pero no se ejecuta en los navegadores actuales.
Hay bastantes transpiladores que exportarán ES5 para ejecutarse en navegadores.
BabelJS:
BabelJS es el transpiler más popular que transforma el nuevo JavaScript ES6 en el antiguo JavaScript ES5.
BabelJS hace posible escribir la próxima generación de JavaScript hoy (significa ES2015).
BabelJS simplemente toma el archivo ES2015 y lo transforma en un archivo ES5.
Las versiones actuales de los navegadores ahora pueden entender el nuevo código JavaScript (ES2015), incluso si aún no lo admiten.
TypeScript y CoffeeScript:
Ambos proporcionan azúcar sintáctica sobre ES5 y luego se transcompilan en JavaScript compatible con ES5.
Escribe TypeScript o CoffeeScript y luego el transpilador lo transforma en JavaScript ES5.
fuente
La especificación del lenguaje ECMAScript® define toda la lógica para crear y editar objetos, matrices, números, etc.
DOM ( D DOCUMENTO O bject M odelo) hace que sea posible la comunicación con los documentos HTML / XML (por ejemplo
document.getElementById('id');
).BOM ( B rowser O bject M odel ) es la jerarquía de los objetos del navegador (por ejemplo, objeto de ubicación, objeto de historial, elementos de formulario).
Historial de nombres de JavaScript:
fuente
JavaScript = ECMAScript + DOM API;
?JavaScript = ECMAScript + DOM API;
se basa únicamente en los términos documentados acordados en general en los que consiste JavaScript.Técnicamente, ECMAScript es el lenguaje que todos usan e implementan: es la especificación creada hace muchos años cuando Netscape y Microsoft se sentaron e intentaron estandarizar las secuencias de comandos entre JavaScript (lenguaje de secuencias de comandos de Netscape) y JScript (Microsoft).
Posteriormente, todos estos motores están implementando ostensiblemente ECMAScript, sin embargo, JavaScript (el nombre) ahora se cuelga tanto por razones de nomenclatura tradicionales como por Mozilla como término de marketing para sus diversas extensiones no estándar (que quieren poder "versionar" en realidad )
fuente
¿Qué es ECMAScript, es decir, ES?
¿Es Javascript exactamente igual que ECMAScript?
DOM API como:
document.getElementById('id');
¿Otros idiomas usan el estándar ECMAScript?
¿Por qué se llama ECMAScript?
fuente
Varias versiones de JavaScript son implementaciones del estándar ECMAScript.
fuente
Sé que esta es una publicación antigua, pero espero que esto ayude a alguien.
En la década de 1990, comenzaron a salir diferentes versiones de js como javascript de netscape, script Js de Microsoft. Entonces, ecmascript se introdujo como estándar. Pero ecmascript forma solo una parte de javascript que especifica su sintaxis central, tipos, objetos, etc. Probablemente eso explica las implementaciones inconsistentes de javascript en diff. navegadores
Referencia - Wrox (Javascript profesional para desarrolladores web)
fuente
En mi opinión, ECMAScript es la "Teoría" o "Especificación", y Javascript es "Prácticas" o "Implementación".
fuente
JavaScript es un lenguaje ECMAScript.
ECMAScript no es necesariamente JavaScript.
fuente
Las respuestas existentes parafrasean bastante bien el punto principal.
El punto principal es que ECMAScript es el lenguaje abstracto simple, sin extensiones específicas de dominio, es inútil en sí mismo. La especificación define solo el lenguaje y los objetos principales del mismo.
Si bien JavaScript y ActionScript y otros dialectos le agregan la biblioteca específica del dominio, puede usarlo para algo significativo.
Hay muchos motores ECMAScript , algunos de código abierto, otros son propietarios. Puede vincularlos a su programa y luego agregar sus funciones nativas al objeto global para que su programa se convierta en scriptable. Aunque con mayor frecuencia se usan en navegadores.
fuente
Javascript era el nombre original, destinado a capitalizar la popularidad de Java. ECMA es el organismo de estándares que supervisa el estándar que finalmente se implementó para que los nombres sean más o menos equivalentes.
Las implementaciones tienen otros nombres, como V8 o Rhino, etc.
fuente
ECMAScript es un estándar para JavaScrip t, mire estas declaraciones de MDN :
JavaScript
ECMAScript
Para más información, visite aquí.
fuente
Aquí están mis hallazgos:
JavaScript: La Guía definitiva , escrita por David Flanagan, ofrece una explicación muy concisa:
Una publicación de blog de Microsoft parece estar de acuerdo con lo que Flanagan explica al decir ...
.. lo que me hace pensar que todas las ocurrencias
JavaScript
en esta publicación de referencia (por Microsoft nuevamente) deben ser reemplazadas porECMASCript
. En realidad, parecen tener cuidado al usarECMAScript
solo en esta página de documentación más reciente y más técnica.w3schools.com parece estar de acuerdo con las definiciones anteriores:
La clave aquí es: el nombre oficial del idioma .
Si revisa las páginas de la versión JavaScript de Mozilla , encontrará la siguiente declaración:
y cuando vea las notas de la versión reciente, siempre verá referencias a los estándares ECMAScript, tales como:
Mozilla Web Docs también tiene una página que explica la diferencia entre ECMAScript y JavaScript:
Conclusión
Según tengo entendido, la gente usa la palabra JavaScript de forma un tanto liberal para referirse a la especificación principal de ECMAScript.
Yo diría que todas las implementaciones de JavaScript modernas (o motores de JavaScript) son, de hecho, implementaciones de ECMAScript. Verifique la definición del motor V8 de Google, por ejemplo:
Parecen usar la palabra JavaScript y ECMAScript indistintamente, y yo diría que en realidad es un motor ECMAScript.
Por lo tanto, la mayoría de los motores JavaScript están implementando el estándar ECMAScript, pero en lugar de llamarlos motores ECMAScript, se denominan motores JavaScript. Esta respuesta también apoya la forma en que veo la situación.
fuente
Dudo que alguna vez usemos la palabra "ECMAScript" si no fuera por el hecho de que el nombre "JavaScript" es propiedad de Sun. Para todos los efectos, el lenguaje es JavaScript. No vas a la librería buscando libros de ECMAScript, ¿verdad?
Es un poco demasiado simple decir que "JavaScript" es la implementación. JScript es la implementación de Microsoft.
fuente
JavaScript es una rama de lenguajes formados alrededor del estándar ECMAScript. Creo que ECMA es la Asociación Europea de Fabricantes de Computadoras, no es que esto sea realmente relevante ni nada.
No olvide que otro lenguaje popular formado alrededor del estándar ECMA Script es ActionScript, utilizado en Adobe Flash / Flex.
fuente