Qual é a diferença entre ECMAScript e JavaScript? Pelo que deduzi, o ECMAScript é o padrão e o JavaScript é a implementação. Isso está correto?
javascript
ecma262
Cara
fonte
fonte
Eu acho que uma pequena lição de história está prevista.
O JavaScript foi originalmente chamado Mocha e alterado para Livescript, mas acabou se tornando JavaScript.
É importante observar que o JavaScript veio antes do ECMAscript e o histórico informará o motivo.
Para começar do início, o JavaScript derivou seu nome de Java e, inicialmente, foi solicitado a Brendan Eich (o criador do JS) que desenvolvesse uma linguagem que se assemelhasse a Java para a Web do Netscape.
Eich, no entanto, decidiu que o Java era muito complicado com todas as suas regras e decidiu criar uma linguagem mais simples que até um iniciante poderia codificar. Isso é evidente em coisas como o relaxamento da necessidade de um ponto e vírgula.
Depois que a linguagem foi concluída, a equipe de marketing da Netscape solicitou à Sun que lhes permitisse chamá-la de JavaScript como um truque de marketing e, portanto, por que a maioria das pessoas que nunca usou o JavaScript acha que isso está relacionado ao Java.
Cerca de um ano ou dois após o lançamento do JavaScript no navegador, o IE da Microsoft adotou a linguagem e começou a fazer suas próprias implementações, como o JScript. Ao mesmo tempo, o IE estava dominando o mercado e pouco tempo depois a Netscape teve que fechar seu projeto.
Antes de o Netscape cair, eles decidiram iniciar um padrão que guiaria o caminho do JavaScript, chamado ECMAScript.
O ECMAScript teve alguns lançamentos e, em 1999, eles lançaram sua última versão (ECMAScript 3) antes de entrar em hibernação pelos próximos 10 anos. Durante esses 10 anos, a Microsoft dominou as cenas, mas ao mesmo tempo não estava melhorando seu produto e, portanto, o Firefox nasceu (liderado por Eich) e vários outros navegadores, como Chrome, Opera.
O ECMAScript lançou sua 5ª edição em 2009 (a 4ª edição foi abandonada) com recursos como o modo estrito. Desde então, o ECMAScript ganhou muito ímpeto e está programado para lançar sua 6ª edição dentro de alguns meses, com as maiores mudanças até agora.
Você pode usar uma lista de recursos do ECMAScript 6 aqui http://kangax.github.io/es5-compat-table/es6/ e também o suporte ao navegador. Você pode até começar a escrever o Ecmascript 6 como no CoffeeScript e usar um compilador para compilar o Ecmascript 5.
Se ECMAScript é a linguagem e JavaScript é um dialeto é discutível, mas não importante. Se você continuar pensando assim, pode confundir você. Não existe nenhum compilador que execute o ECMAScript, e acredito que o JavaScript seja considerado a linguagem que implementa um padrão chamado ECMAScript.
Também existem outras linguagens perceptíveis que implementam o ECMAScript, como o ActionScript (usado para Flash)
fonte
ECMAScript = ES:
ECMAScript é um padrão para linguagens de script.
Idiomas como Javascript são baseados no padrão ECMAScript.
O ECMA Standard é baseado em várias tecnologias de origem, sendo as mais conhecidas JavaScript (Netscape) e JScript (Microsoft).
ECMA significa Associação Europeia de Fabricantes de Computadores
JavaScript = JS:
JavaScript é a implementação mais popular do ECMAScript Standard.
Os principais recursos do Javascript são baseados no padrão ECMAScript, mas o Javascript também possui outros recursos adicionais que não estão nas especificações / padrão do ECMA.
ActionScript e JScript são outras linguagens que implementam o ECMAScript.
O JavaScript foi enviado à ECMA para padronização, mas devido a problemas de marca registrada com o nome Javascript, o padrão passou a se chamar ECMAScript.
Todo navegador tem um intérprete de JavaScript.
ES5 = ECMAScript 5:
ES5 é uma versão do ECMAScript (antiga / atual).
ES5 é o JavaScript que você conhece e usa no navegador hoje.
O ES5 não requer uma etapa de construção (transpilers) para transformá-lo em algo que será executado nos navegadores de hoje.
O ECMAScript versão 5 foi concluído em dezembro de 2009, as versões mais recentes de todos os principais navegadores (Chrome, Safari, Firefox e IE) implementaram a versão 5.
A versão 5.1 foi concluída em junho de 2011.
ES6 = ECMAScript 6 = ES2015 = ECMAScript 2015:
ES2015 é uma versão do ECMAScript (nova / futura).
Oficialmente, o nome ES2015 deve ser usado em vez de ES6.
O ES6 abordará muitas das principais deficiências da linguagem abordadas no TypeScript e CoffeeScript.
O ES6 é a próxima iteração do JavaScript, mas não é executado nos navegadores de hoje.
Existem alguns transpilers que exportam o ES5 para execução em navegadores.
BabelJS:
O BabelJS é o transpilador mais popular que transforma o novo JavaScript ES6 em JavaScript antigo ES5.
O BabelJS torna possível escrever a próxima geração de JavaScript hoje (significa ES2015).
O BabelJS simplesmente pega o arquivo ES2015 e o transforma em arquivo ES5.
As versões atuais dos navegadores agora podem entender o novo código JavaScript (ES2015), mesmo se ainda não o suportar.
TypeScript e CoffeeScript:
Ambos fornecem açúcar sintático sobre o ES5 e, em seguida, são compilados em JavaScript compatível com o ES5.
Você escreve TypeScript ou CoffeeScript e o transpiler o transforma em JavaScript ES5.
fonte
A especificação de idioma do ECMAScript® define toda a lógica para criar e editar objetos, matrizes, números, etc ...
DOM ( D ocument O bject M odelo) torna possível comunicar com documentos de HTML / XML (por exemplo
document.getElementById('id');
).BOM ( B linhaser O bject M odelo) representa a hierarquia de objectos navegador (por exemplo, objecto localização, objecto historial, elementos de forma).
Histórico de nomeação de JavaScript:
fonte
JavaScript = ECMAScript + DOM API;
?JavaScript = ECMAScript + DOM API;
baseia-se apenas nos termos documentados acordados em geral nos quais o JavaScript consiste.Tecnicamente, o ECMAScript é a linguagem que todos estão usando e implementando - é a especificação criada há muitos anos quando a Netscape e a Microsoft se sentaram e tentaram padronizar os scripts entre JavaScript (linguagem de script da Netscape) e JScript (Microsoft).
Posteriormente, todos esses mecanismos estão implementando ostensivamente o ECMAScript, no entanto, o JavaScript (o nome) agora permanece por ambos os motivos tradicionais de nomeação e como um termo de marketing da Mozilla para suas várias extensões não-padrão (que eles querem realmente "versão" )
fonte
O que é o ECMAScript, ou seja, ES?
Javascript é exatamente o mesmo que ECMAScript?
API do DOM como:
document.getElementById('id');
Outros idiomas usam o padrão ECMAScript?
Por que é chamado ECMAScript?
fonte
Várias versões JavaScript são implementações do padrão ECMAScript.
fonte
Eu sei que este é um post antigo, mas espero que isso ajude alguém.
Nos anos 90, diferentes versões do js começaram a sair como javascript do netscape, script Js da Microsoft. Então, o ecmascript foi introduzido como padrão. Mas o ecmascript forma apenas uma parte do javascript que especifica sua sintaxe principal, tipos, objetos etc. Provavelmente isso explica as implementações inconsistentes do javascript no diff. navegadores
Reference - Wrox (Javascript profissional para desenvolvedores web)
fonte
No meu entendimento, ECMAScript é a "Teoria" ou "Especificação" e Javascript é "Práticas" ou "Implementação".
fonte
JavaScript é uma linguagem ECMAScript.
O ECMAScript não é necessariamente JavaScript.
fonte
As respostas existentes parafrasearam bem o ponto principal.
O ponto principal é que o ECMAScript é a linguagem abstrata, sem extensões específicas de domínio, é inútil em si. A especificação define apenas a linguagem e os objetos principais dela.
Enquanto o JavaScript, o ActionScript e outros dialetos adicionam a biblioteca específica do domínio, você pode usá-la para algo significativo.
Existem muitos mecanismos ECMAScript , alguns deles são de código aberto, outros são proprietários. Você pode vinculá-los ao seu programa e adicionar suas funções nativas ao objeto global para que seu programa se torne programável. Embora na maioria das vezes eles sejam usados em navegadores.
fonte
Javascript era o nome original, destinado a capitalizar a popularidade do java. A ECMA é o órgão de padrões que supervisiona o padrão que acabou sendo posto em prática, portanto os nomes são aproximadamente equivalentes.
As implementações têm outros nomes, como V8 ou Rhino, etc.
fonte
ECMAScript é um padrão para JavaScrip t, veja estas instruções do MDN :
Javascript
ECMAScript
Para mais informações, visite aqui
fonte
Aqui estão minhas descobertas:
JavaScript: O Guia Definitivo , escrito por David Flanagan, fornece uma explicação muito concisa:
Um post da Microsoft parece concordar com o que Flanagan explica dizendo:
.. o que me faz pensar que todas as ocorrências
JavaScript
no presente pós referência (por Microsoft novamente) deve ser substituído porECMASCript
. Na verdade, eles parecem ter cuidado ao usarECMAScript
apenas nesta página de documentação mais recente e mais técnica.O w3schools.com parece concordar com as definições acima:
A chave aqui é: o nome oficial do idioma .
Se você verificar as páginas da versão JavaScript do Mozilla , encontrará a seguinte declaração:
e quando vir as notas de versão recentes, sempre verá referências aos padrões do ECMAScript, como:
O Mozilla Web Docs também possui uma página que explica a diferença entre ECMAScript e JavaScript:
Conclusão
No meu entender, as pessoas usam a palavra JavaScript de maneira um tanto liberal para se referir à especificação central do ECMAScript.
Eu diria que todas as implementações modernas de JavaScript (ou JavaScript Engines) são, de fato, implementações de ECMAScript. Verifique a definição do mecanismo V8 do Google, por exemplo:
Eles parecem usar a palavra JavaScript e ECMAScript de forma intercambiável, e eu diria que é realmente um mecanismo ECMAScript?
Portanto, a maioria dos mecanismos JavaScript está realmente implementando o padrão ECMAScript, mas, em vez de chamá-los de mecanismos ECMAScript, eles se denominam mecanismos JavaScript. Esta resposta também suporta o modo como vejo a situação.
fonte
Duvido que alguma vez usássemos a palavra "ECMAScript" se não fosse pelo fato de o nome "JavaScript" pertencer à Sun. Para todos os efeitos, o idioma é JavaScript. Você não vai à livraria procurando livros ECMAScript, não é?
É um pouco simples dizer que "JavaScript" é a implementação. JScript é a implementação da Microsoft.
fonte
JavaScript é um ramo de idiomas formado em torno do padrão ECMAScript. Acredito que a ECMA é a Associação Europeia de Fabricantes de Computadores, não que isso seja realmente relevante ou algo assim.
Não esqueça que outra linguagem popular formada em torno do padrão ECMA Script é o ActionScript, usado no Adobe Flash / Flex.
fonte