Расскажите про опыт работы с JavaScript и используемые инструменты
Что проверяют
Глубину владения языком и осознанность выбора инструментов. Вопрос звучит как приглашение перечислить стек, а проверяют другое: понимаете ли вы, какую задачу решает каждый пункт вашего списка.
Как отвечать
Сначала язык, потом экосистема, потом пример. Про язык говорите о том, что реально трогали: асинхронность (промисы, async/await, обработка отказов, отмена через AbortController), замыкания и область видимости, this и способ вызова, работа с DOM и всплытие событий, модули и сборка бандла.
Дальше инструменты, каждый вместе с задачей:
- фреймворк и то, как в нём устроено состояние: локальное, кеш серверных данных, глобальный стор только там, где он действительно нужен;
- сборщик: почему выбран этот, что дают разделение бандла и ленивая загрузка;
- типизация: что закрывает TypeScript и какие дыры остаются на границе с сетью;
- тесты: юнит-тесты, тестирование компонентов, отдельно сценарные проверки в браузере;
- линтер и форматирование как часть CI, а не как личная привычка.
Лучший аргумент это история про измеримую задачу: что тормозило, что показала панель производительности в инструментах разработчика, что поменяли, чем проверили результат. Инструмент, названный вместе с проблемой, запоминается лучше любого перечня.
Где спотыкаются
Перечисляют библиотеки без задач. На вопрос, зачем в проекте глобальный стор и что было бы без него, ответа нет, и весь список сразу обесценивается.
Второе: называют круглые проценты ускорения загрузки, которых никто не мерил. Уточнение про метрику, инструмент и условия замера превращает достижение в неловкую паузу.
Третье: подменяют JavaScript фреймворком. Кандидат уверенно рассказывает про компоненты и хуки, а на приведение типов, всплытие события или порядок выполнения промиса и таймера отвечает наугад. Фреймворк меняется от проекта к проекту, язык остаётся.