Вот другой взгляд на эту тему. Это более-менее из опыта, ничего не могу процитировать. Любой валидатор JavaScript и все, кто работает с JavaScript, скажут вам, что
alert("hello World");
допустим JavaScript. И я тоже согласен.
Однако валидатор ECMAScript, вероятно, скажет вам, что он недействителен, потому что alert () не является частью ECMAScript, а обычно является функцией JavaScript для браузеров. Есть много функций JavaScript, которые имеют смысл только в среде браузера, fi window.navigator, window.document, WebSocket, navigator.geolocation. Некоторые даже скажут, что это не часть JavaScript, а часть HTML5, что неверно, потому что HTML5 - это просто язык разметки. Однако эти причудливые новые функции часто называют HTML5, даже если они реализованы на JavaScript.
JavaScript также можно использовать для сценариев на стороне сервера. Тогда все геолокация или медиа-API не имеют смысла. Таким образом, JavaScript для сценариев на стороне сервера снова намного ближе к ECMAScript, который не имеет этих типичных функций браузера.
Я действительно не мог понять, является ли объект Math (например, Math.sqrt (9)) частью ECAMScript, или действительно ли ECMAScript просто определяет синтаксис языка и вообще не имеет встроенных функций. Но один валидатор ECMAScript принял Math.sqrt (9) как действительный ECMAScript, тогда как var test = window.document; не прошел проверку ECMA.
Несмотря на то, что следующая ссылка на документацию JavaScript, на мой взгляд, это встроенный набор функций (объекты и функции) ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects
Так что, на мой взгляд, JavaScript очень тесно связан с браузерами, тогда как ECMAScript действительно имеет только очень базовый набор функций (если они вообще есть).