Частые вопросы на собеседовании по JavaScript
Автор: Aaron Cao · Обновлено

Ждите вопросов по основам: замыкания, event loop, привязка this, прототипы и работа со scope через var, let и const. Дальше — задачи на код вроде реализации debounce, выравнивания массива или написания утилиты для promise, а также темы по браузеру вроде делегирования событий. На собеседованиях уровня senior добавляются паттерны async и вопросы про производительность.
Какие основы JavaScript спрашивают чаще всего?
Список возможных вопросов по JavaScript кажется бесконечным, а зубрить вопросы наугад — самый медленный способ его пройти. Этот раздел сужает его до концепций, к которым интервьюеры возвращаются почти в каждом раунде, чтобы ваша подготовка соответствовала реальному распределению вопросов. Большую часть скрининга покрывают пять тем:
- Замыкания: что захватывает функция, классический баг с переменной цикла и почему работают паттерны модулей.
- Event loop: call stack, очередь задач и очередь microtask, а также в каком порядке выводятся логи в смешанном примере.
- Привязка this: по умолчанию, неявная, явная через call и apply, и чем отличаются стрелочные функции.
- Прототипы: поиск свойства по цепочке и во что в итоге компилируется синтаксис class.
- Scope: var против let и const, hoisting и временная мёртвая зона.
Приведение типов при сравнении == против ===, truthiness, а также методы массивов вроде map, filter и reduce дополняют уровень скрининга. Если вы можете вслух объяснить каждый пункт выше меньше чем за минуту, раунд по основам можно считать пройденным.
Какие задачи на код стоит практиковать?
Помимо концептуальных вопросов, большинство раундов по JavaScript включают короткую задачу на реализацию, которую нужно решить вживую. Повторяющийся набор невелик, и его стоит отрабатывать, пока каждая задача не станет занимать минуты, а не несколько попыток:
- Реализовать
debounceиthrottleи сказать, когда что уместно. - Сделать плоским вложенный массив с рекурсией и без неё.
- Написать упрощённую версию
Promise.all, которая делает reject при первой же ошибке. - Собрать небольшой event emitter с on, off и emit.
- Сделать глубокое клонирование объекта и назвать случаи, которые ваша версия упускает.
Например, кандидату на фронтенд-позицию среднего уровня могут дать debounce в качестве разминки, а затем попросить подключить его к полю поиска и объяснить, что происходит с запросами, которые ещё выполняются. Настоящая проверка — это уточняющие вопросы; интервьюеры расширяют задачу, чтобы увидеть, где заканчивается ваше понимание языка.
Проговаривать это вслух перед интервьюером, который возражает и уточняет, — вот что закрепляет материал; страница пробного собеседования рассказывает, как проводить сессии с таймером и уточняющими вопросами.
Как выглядят вопросы про браузер и async?
Роли, связанные с браузером, добавляют ещё один слой поверх основ языка. Делегирование событий — это стержень: почему один listener на родителе лучше, чем тысяча на потомках, как всплытие (bubbling) делает это возможным и когда важна фаза захвата. Батчинг обновлений DOM, layout thrashing и то, что вызывает reflow, встречаются в скрининге с уклоном в производительность.
Вопросы про async сошлись к стандартной форме: фрагмент, смешивающий setTimeout, цепочки promise и функции async, где нужно предсказать порядок вывода. Ответ зависит от порядка между microtask и macrotask, и интервьюеров больше интересует почему, чем сама последовательность. Обработка ошибок через границы await, цепочки promise против вложенности, и гонка запросов через Promise.race дополняют этот набор.
Чем эти раунды отличаются в форматах code, поведенческом и системном дизайне, рассказано в хабе по типам собеседований.
Как тренироваться, чтобы это перенеслось на настоящий раунд?
Читать ответы ощущается продуктивным, но почти ничего не переносится на практику. Раунд проходит устно, на время и интерактивно, так что и тренировка должна быть такой же. Проводите пробные сессии, где вы проговариваете вслух во время набора кода, вас перебивают уточняющими вопросами и давит время на часах; именно это давление делает воспроизведение автоматическим. Наборы вопросов для других языков и стеков собраны в хабе банков вопросов.
Честное замечание: настоящие раунды по JavaScript обычно проходят в общем редакторе с видимым экраном, и такие оценки с наблюдением записываются. Ассистент нужен для подготовки и тренировки, а не для самого экрана, которым делятся в реальном времени. Там, где живая помощь уместна — на телефонных скринингах без демонстрации экрана или в ваших собственных тренировочных сессиях, — оверлей SubcueAI остаётся локально на вашем устройстве, и ни один бот не подключается к звонку.
Частые вопросы
Собеседования по JavaScript — это просто задачи с LeetCode?
На чём в первую очередь стоит сосредоточиться джуниору?
Как просто объяснить event loop?
Затрагивают ли собеседования по JavaScript TypeScript?
Похожие вопросы
- Каких вопросов о Databricks ожидать на собеседовании?
- Каких вопросов по .NET ждать на собеседовании?
- Каких вопросов ожидать на собеседовании инженера по качеству?
- Каких вопросов ожидать на квант-интервью?
- Каких вопросов по Snowflake ожидать на собеседовании?
- Каких вопросов ожидать на собеседовании учителя?