Что такое ECMAScript? В чём отличие от JavaScript? Какие есть типы данных в JavaScript? Что такое область видимости (scope) ? Что такое лексическое окружение? Что такое замыкание? Что такое деструктуризация? Что такое цепочка вызовов функций (chaining)? Как реализовать такой подход? В чём разница между var, let и const? Что такое всплытие hoisting? Что такое временная мёртвая зона (temporal dead zone)? Что означает функции высшего порядка? Что делает reduce? Какие аргументы принимает? Плюсы и минусы иммутабельности? Как достичь иммутабельности в JS? Для чего используются метод Object.seal()? Разница между Object.freeze() и Object.seal()? Можно ли изменить значение определённое через const? Что такое this? Что такое потеря контекста? Как работает instanceof? Разница между typeof и instanceof? Что такое класс и для чего он нужен? Что такое DOM? Виды событий в JavaScript? Разница между событиями load и DOMContentLoaded? Как добавить обработчик события на DOM-элемент? Сколько аргументов принимает addEventListener? Что такое Eventloop, очередь задач, микрозадача и макрозадача? Подходы при работе с асинхронным кодом? Многопоточность против асинхронного программирования? Как обрабатывать ошибки в промисах?