Все профессии

Подготовка к собеседованию

Frontend JavaScript и TypeScript: вопросы и ответы

Вопросы по браузеру, JavaScript, TypeScript, производительности и доступности интерфейсов.

JavaScript и TypeScript

4 вопросов
Что такое замыкание?junior

Замыкание — функция вместе с лексическим окружением, в котором она была создана. Благодаря ему функция может обращаться к переменным внешней области после завершения её вызова.

Зачем нужен TypeScript?junior

TypeScript добавляет статическую проверку типов, улучшает автодополнение и делает контракты модулей явными. В браузер код компилируется в JavaScript, поэтому runtime-проверки при необходимости добавляют отдельно.

В чём разница между == и ===?junior

=== сравнивает без неявного приведения типов и обычно предпочтительнее. == допускает преобразование, из-за чего результат некоторых сравнений становится неожиданным.

Что такое debounce и throttle?junior

Debounce откладывает вызов до паузы во входных событиях, throttle ограничивает частоту вызовов. Первый удобен для поиска, второй — для scroll и resize.

Браузер

3 вопросов
Как распространяется событие в DOM?middle

Событие проходит capture-фазу от document к элементу, затем target и bubble-фазу обратно вверх. Делегирование часто используют на bubble-фазе, чтобы обрабатывать события динамических дочерних элементов.

Что вызывает layout thrashing?middle

Чередование записи стилей и немедленного чтения геометрии заставляет браузер многократно пересчитывать layout. Изменения группируют, используют CSS-анимации и читают измерения до записи.

Как работает CORS?middle

Браузер ограничивает запросы между origin и проверяет заголовки ответа. Для сложных запросов сначала выполняется preflight OPTIONS, который сервер должен разрешить явно.

Качество интерфейса

3 вопросов
Как сделать интерфейс доступным?middle

Используют семантические элементы, видимый focus, правильные label, клавиатурную навигацию, достаточный контраст и понятные сообщения об ошибках. ARIA добавляют только когда нативной семантики недостаточно.

Как измерять производительность фронтенда?senior

Смотрят Core Web Vitals, waterfall загрузки, размер JavaScript и профилирование рендера. После изменения сравнивают метрики на реалистичном устройстве, а не только локальный Lighthouse.

Как обрабатывать состояние загрузки и ошибки?junior

Для каждого запроса явно показывают loading, success, empty и error-состояния. Пользователь должен понимать, что произошло и какое действие доступно дальше.

Как использовать этот список

Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.

Посмотреть другие профессии →