Oto inne spojrzenie na ten temat. To mniej więcej z doświadczenia, niczego nie mogę zacytować. Każdy walidator JavaScript i każdy, kto pracuje z JavaScript, powie ci to
alert("hello World");
jest prawidłowym JavaScriptem. Zgadzam się też.
Jednak walidator ECMAScript prawdopodobnie powie ci, że jest nieprawidłowy, ponieważ alert () nie jest częścią ECMAScript, ale typową funkcją JavaScript for Browsers. Istnieje wiele funkcji JavaScript, które mają sens tylko w środowisku przeglądarki, np. Window.navigator, window.document, WebSocket, navigator.geolocation. Niektórzy powiedzieliby nawet, że nie jest to część JavaScript, ale część HTML5, co nie jest prawdą, ponieważ HTML5 to tylko język znaczników. Jednak te wymyślne nowe funkcje są często nazywane HTML5, mimo że zostały zaimplementowane w JavaScript.
JavaScript może być również używany do tworzenia skryptów po stronie serwera. Wtedy cała geolkacja czy media api nie mają sensu. Tak więc JavaScript dla skryptów po stronie serwera jest ponownie znacznie bliższy ECMAScript, który nie ma tych typowych funkcji przeglądarki.
Naprawdę nie mogłem się dowiedzieć, czy obiekt Math (np. Math.sqrt (9)) jest częścią ECAMScript, czy też ECMAScript naprawdę definiuje składnię języka i nie ma żadnej wbudowanej funkcjonalności. Ale jeden walidator ECMAScript zaakceptował Math.sqrt (9) jako prawidłowy ECMAScript, podczas gdy var test = window.document; nie przeszedł walidacji ECMA.
Mimo że poniższy link prowadzi do dokumentacji JavaScript, moim zdaniem jest to wbudowany zestaw funkcji (obiekty i funkcje) ECMAScript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference / Global_Objects
Więc moim zdaniem JavaScript jest bardzo blisko związany z przeglądarkami, podczas gdy ECMAScript ma tak naprawdę tylko bardzo podstawowy zestaw funkcji (jeśli w ogóle).