O que é ECMAScript?

118

No Visual Studio, quando estou configurando meu tipo de script para JavaScript, isso surge como uma opção no intellisense.

Uma rápida pesquisa no Google veio com resultados ruins, me levando a acreditar que não é muito popular para usar.

  • O que é isso?
  • Alguém usa isso? (<script type="text/ecmascript">)
  • Por quê?
Jason
fonte
Saber a diferença entre ECMAScript e Javascript também ajuda a entender o ECMAScript.
RBT

Respostas:

169

JavaScript é um subconjunto do ECMAScript. JavaScript é basicamente ECMAScript em seu núcleo, mas se baseia nele. Linguagens como ActionScript, JavaScript, JScript usam ECMAScript como seu núcleo. Como comparação, AS / JS / JScript são 3 carros diferentes, mas todos usam o mesmo motor ... cada um de seus exteriores é diferente, e várias modificações foram feitas em cada um para torná-lo único.

A história é que Brendan Eich criou o Mocha, que se tornou o LiveScript e, mais tarde, o JavaScript. Netscape apresentou JavaScript para Ecma International , que desenvolve padrões e foi renomeado para ECMA-262, também conhecido como ECMAScript.

É importante observar que o "JavaScript" de Brendan Eich não é o mesmo JavaScript que é um dialeto do ECMAScript. Ele construiu a linguagem central que foi renomeada para ECMAScript, que difere do JavaScript que os fornecedores de navegadores implementam atualmente.

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

Meder Omuraliev
fonte
33
Isso não torna o Javascript um subconjunto do ECMAScript, se ECMAScript for o núcleo?
Ryan Amos de
15
JavaScript (historicamente) tem coisas que o ECMAScript não tem. JavaScript (historicamente tenta) ter tudo que o ECMAScript tem. Portanto, a postagem está correta, ECMAScript é um subconjunto do JavaScript. No entanto, os dois são mantidos próximos um do outro (embora o ActionScript não seja mais considerado uma linguagem ECMAScript, ele diverge muito, embora tenha suas raízes nele). Os termos ES e JS são quase intercambiáveis.
Nathan Wall
22
Não acho que seja correto dizer que "ECMAScript é um subconjunto do JavaScript." Em vez disso, o artigo da Wikipedia que você cita indica que ECMAScript é um padrão e que o JavaScript é uma implementação bem conhecida desse padrão (com extensões) .
DavidRR
2
Acho que você quis dizerECMAScript is a superset of Javascript
Callat
6
Como o Javascript implementa o ECMAScript e também se baseia nele, eu diria que o Javascript é, portanto, um superconjunto do ECMAScript.
RayLoveless
76

ECMAScript é um padrão . JavaScript e ActionScript são implementações bem conhecidas do padrão ECMAScript.

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

Daniel A. White
fonte
32

ECMAScript = ES:

  • ECMAScript é um padrão para linguagens de script.

  • Linguagens como Javascript são baseadas no padrão ECMAScript.

  • O padrão ECMA é baseado em várias tecnologias originais, sendo as mais conhecidas JavaScript (Netscape) e JScript (Microsoft).

  • ECMA significa European Computer Manufacturer's Association


Por outro lado:


JavaScript = JS:

  • JavaScript é a implementação mais popular do padrão ECMAScript.

  • 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 ECMA.

  • ActionScript e JScript são outras linguagens que implementam o ECMAScript.

  • JavaScript foi submetido à ECMA para padronização, mas devido a problemas de marca registrada com o nome Javascript, o padrão passou a se chamar ECMAScript.

  • Cada navegador possui um interpretador JavaScript.


Para obter mais detalhes sobre esta verificação, minha resposta completa aqui Qual é a diferença entre JavaScript e ECMAScript?

Mahmoud Zalt
fonte
quase todos os navegadores têm suporte a JavaScript, mas há muitos navegadores CLI como links e lynx que não têm, além desses, há: links2, w3m, elinks e edbrowse. A maioria dos navegadores CLI também não oferece suporte a JS.
Cassio Seffrin
16

ECMA significa - European Computer Manufacturer's Association. ECMAScript é um padrão para uma linguagem de script. Ele especifica os principais recursos que uma linguagem de script deve fornecer e como esses recursos devem ser implementados. Javascript foi originalmente criado na Netscape, e eles queriam padronizar a linguagem. Então, eles enviaram o texto à European Computer Manufacturer's Association (ECMA) para padronização. Porém, havia problemas de marca registrada com o nome Javascript, e o padrão passou a se chamar ECMAScript, que é o nome que ele também possui hoje.

Portanto, você pode usar qualquer linguagem de script que implemente o padrão ECMA, pois os navegadores da web suportam a interpretação ECMAScript quando você especifica ( <script type="text/ecmascript">).

Krishna
fonte
2

ECMA é a organização que padronizou o JavaScript. Eles chamaram a linguagem de ECMAScript, no entanto, o "JavaScript" foi o termo que ganhou a "competição de nomes"

cateof
fonte
1

Aqui está uma visão diferente sobre este tópico. É mais ou menos por experiência própria, não posso citar nada. Qualquer validador de JavaScript e todos que trabalham com JavaScript vão te dizer que

alert("hello World");

é um JavaScript válido. E eu também concordaria.

No entanto, um validador ECMAScript provavelmente dirá que não é válido, porque alert () não faz parte do ECMAScript, mas um recurso típico do JavaScript para navegadores. Existem muitos recursos do JavaScript, que só fazem sentido em um ambiente de navegador, fi window.navigator, window.document, WebSocket, navigator.geolocation. Alguns diriam até que isso não faz parte do JavaScript, mas sim do HTML5, o que não é verdade, porque o HTML5 é apenas a linguagem de marcação. No entanto, esses novos recursos sofisticados costumam ser chamados de HTML5, embora sejam implementados em JavaScript.

JavaScript também pode ser usado para scripts do lado do servidor. Então, toda a geolocalização ou apis de mídia não faz sentido. Portanto, o JavaScript para scripts do lado do servidor está muito mais próximo do ECMAScript novamente, que não tem esses recursos típicos de navegador.

Não consegui descobrir se o objeto Math (por exemplo, Math.sqrt (9)) faz parte do ECAMScript ou se o ECMAScript realmente apenas define a sintaxe da linguagem e não tem nenhuma funcionalidade incorporada. Mas um validador ECMAScript aceitou Math.sqrt (9) como ECMAScript válido, enquanto var test = window.document; falhou na validação ECMA.

Embora o link a seguir o vincule a uma documentação JavaScript, na minha opinião, este é o conjunto de recursos (objetos e funções) do ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects

Portanto, em minha opinião, o JavaScript está intimamente ligado aos navegadores, enquanto o ECMAScript tem apenas um conjunto muito básico de funcionalidades (se houver).

haferblues
fonte