Практически все зрелые языки определяются спецификацией, и компиляторы или интерпретаторы пытаются следовать стандарту, определенному в этой спецификации. Но очень редко они добиваются успеха, если стандарт не определен автором языка.
Вы можете найти стандарт C ++ 2003 , в C # 4 спецификации , в спецификации Java 7 и многое другое в Интернете. Многие из них имеют номера стандартизации ECMA или ISO. Это просто организации, в которых вы можете зарегистрировать стандарт и сделать его более официальным.
Исторически Ruby делал вещи немного по-другому, имея в качестве спецификации исполняемый набор тестов . Итак, если вы хотите написать интерпретатор и назвать его стандартным Ruby, вам просто нужно создать интерпретатор, который пройдет все эти тесты. Но даже Ruby в конечном итоге может стать более формальной спецификацией .
Javascript ничем не отличается, за исключением, возможно, в том, как он развивался.
Javascript был впервые создан Netscape. Они назвали его LiveScript, но он выглядел похожим на Java, и они заключили сделку с Sun по названию, что принесло пользу как маркетингу Netscape, так и Java. У Microsoft был VBScript и (по причинам, вероятно, ошибочным) предположительно скопировали Javascript, но имя принадлежало Sun, поэтому они нахально назвали его JScript.
Но JScript, хотя и очень похож на Javascript в синтаксисе, широко использовал COM - например, IE5 и 6 создают объект XMLHttpRequest с помощью new ActiveXObject("Microsoft.XMLHTTP");
.
И так, параллельно, похожие, но и разные "диалекты" Javascript родились. Со временем различные группы, владеющие браузерами с меньшей долей рынка, чем IE, пытались стандартизировать язык, и в течение многих лет Microsoft сопротивлялась. До V8.
V8 был быстрым. Это установило совершенно новый рыночный стандарт. Все остальное выглядело плохо.
И, благодаря различным антимонопольным делам против Microsoft, IE терял долю рынка. Внезапно в интересах Microsoft поддержать стандартизацию. Мы еще не там, но это на правильном пути.
В то же время, V8 был открытым исходным кодом, что позволило людям начать придумывать новые способы применения для быстрого Javascript синтаксического анализа, такие как Node.js .
Но вернемся к вашему вопросу: что такое Javascript? Это общее (и оригинальное) имя для ECMAScript, спецификация для прототипного языка, обычно, но не исключительно, используемая для навигации и манипулирования объектной моделью домена в браузере.
ECMA-262 - это просто стандартное определение, как ECMA-334 - это стандартное определение для C #. ECMAScript был единственным названием, с которым могли согласиться все заинтересованные стороны, еще в 1999 году, когда была написана ECMA-262.