Что такое ECMAScript
Что проверяют
Отличаете ли вы язык от его реализации и от среды, в которой он крутится. Фронтендер каждый день пишет на JavaScript, но на собеседовании ценят понимание, что половина привычных вещей стандартом языка вообще не описана.
Заодно смотрят, следите ли вы за развитием языка и умеете ли принимать решение о поддержке браузеров осознанно, а не по привычке.
Как отвечать
ECMAScript это спецификация языка: синтаксис, типы, семантика выполнения, встроенные объекты вроде Object, Array, Promise, Map. JavaScript это реализация спецификации в конкретном движке плюс то, что даёт среда выполнения. DOM, fetch, setTimeout, localStorage в спецификацию языка не входят, их описывают другие стандарты, поэтому в Node.js часть из них отсутствует или ведёт себя иначе.
Стандарт развивает комитет TC39: предложение проходит стадии от нулевой до четвёртой, попавшее в четвёртую входит в очередную годовую редакцию. Практический вывод простой. Возможность на третьей стадии уже доступна через сборку или за флагом, но в продакшене на неё закладываются с осторожностью.
Дальше стоит показать масштаб: редакция ES2015 была переломной (модули, классы, let и const, стрелочные функции, промисы), последующие добавляют точечно, вроде async/await, опциональной цепочки и приватных полей класса. И связать с инструментами: цель сборки и полифилы определяются тем, какой набор браузеров вы поддерживаете.
Где спотыкаются
Ставят знак равенства между ECMAScript и JavaScript и после этого не могут объяснить, почему код с fetch падает в старой среде, хотя синтаксис полностью поддержан.
Считают классы отдельной объектной моделью. Это синтаксис поверх прототипов: prototype, цепочка поиска свойств и super никуда не делись, и вопрос про наследование почти всегда идёт следом.
Путают транспиляцию и полифил. Сборщик переписывает синтаксис, но Promise или новый метод массива синтаксисом не являются, их добавляет полифил. Отсюда классическая ситуация: проект собирается, а в старом браузере падает на пустом месте.