Quase todas as linguagens maduras são definidas por uma especificação e os compiladores ou intérpretes tentam seguir o padrão definido nessa especificação. Mas muito raramente conseguem, a menos que o padrão seja definido pelo autor da linguagem.
Você pode encontrar o padrão C ++ 2003 , o Especificação do C # 4 , o Especificação do Java 7 e muito mais on-line. Muitos deles têm números de padronização ECMA ou ISO. Estas são apenas organizações com as quais você pode registrar um padrão e torná-lo mais oficial.
Ruby historicamente tem feito coisas um pouco diferentes, tendo um conjunto executável de testes como uma especificação . Então, se você quer escrever um interpretador e chamá-lo de Ruby padrão, você só precisa criar um interpretador que passe por todos esses testes. Mas até Ruby é provável que se torne uma especificação mais formal eventualmente.
O JavaScript não é diferente, exceto possivelmente da maneira como evoluiu.
O Javascript foi criado pela Netscape. Eles o chamaram de LiveScript, mas ele parecia semelhante ao Java e eles fizeram um acordo com a Sun sobre o nome, que beneficiou tanto o marketing do Netscape quanto o Java. A Microsoft tinha o VBScript e (por razões provavelmente perdidas para a conjectura) basicamente copiava o Javascript, mas o nome era de propriedade da Sun, então eles o chamavam descaradamente de JScript.
Mas o JScript, embora seja muito semelhante ao JavaScript na sintaxe, fez muito uso do COM - por exemplo, IE5 e 6 instanciam um objeto XMLHttpRequest usando new ActiveXObject("Microsoft.XMLHTTP");
.
E assim, paralelos, semelhantes, mas também diferentes "dialetos" de Javascript nasceram. Com o passar do tempo, vários grupos que possuem navegadores com menos participação de mercado do que o IE tentaram padronizar o idioma, e por anos a Microsoft resistiu. Até V8.
V8 foi rápido. Estabeleceu um novo padrão de mercado. Isso fez tudo parecer ruim.
E, através de vários processos antitruste contra a Microsoft, o IE estava perdendo participação de mercado. De repente, era do interesse da Microsoft apoiar a padronização. Ainda não chegamos lá, mas está no caminho certo.
Enquanto isso, o V8 era de código aberto, o que permitia que as pessoas começassem a pensar em novos usos para um analisador de Javascript rápido, como Node.JS .
Mas, voltando à sua pergunta: o que é JavaScript? É o nome comum (e original) do ECMAScript, uma especificação para uma linguagem prototípica comumente, mas não exclusivamente, usada para navegar e manipular o modelo de objeto de domínio em um broswer.
A ECMA-262 é apenas a definição padrão, como o ECMA-334 é a definição padrão para C #. ECMAScript era o único nome que todas as partes interessadas poderiam concordar, em 99, quando o ECMA-262 foi escrito.