ECMAScript и JavaScript это одно и то же или нет?
Современный JS ES6+
ECMAScript и JavaScript — не совсем одно и то же: ECMAScript — это стандарт (спецификация), а JavaScript — язык, который его реализует, добавляя окружение (DOM, браузерные API).
ECMAScript
Спецификация языка (ECMA-262), разрабатываемая комитетом TC39. Определяет:
- Синтаксис (переменные, функции, классы).
- Типы данных.
- Встроенные объекты (
Array,Object,Promise). - Семантику выполнения.
Это стандарт, а не исполняемый язык.
JavaScript
Реализация ECMAScript плюс дополнительные API среды:
- Браузер: DOM,
window,fetch, события — не входят в ECMAScript. - Node.js:
fs,process, модули — тоже вне ECMAScript.
JavaScript = ECMAScript (ядро языка) + API окружения (DOM/Node)Аналогия
ECMAScript — как правила языка (грамматика), JavaScript — реальный язык, на котором пишут (грамматика + словарь конкретной среды).
Другие реализации ECMAScript
ActionScript (Flash), JScript (старый IE) — тоже реализовывали ECMAScript.
Коротко для собеседования
Не одно и то же: ECMAScript — стандарт/спецификация языка (ECMA-262, от TC39), а JavaScript — его реализация плюс API окружения (DOM, window, Node API), которых нет в самом стандарте. ECMAScript — ядро языка, JavaScript — язык в конкретной среде.