Загрузка…
Загрузка…
frontend / middle / tech_screening
Формат
online
Стадия
tech_screening
Когда
within_quarter
Длительность
—
01
Теория
Какие методы массива ты знаешь, какие используешь?
Кандидат назвал map, forEach, reduce, slice
02
Теория
На какие группы делятся итерационные методы массива? Чем мутирующие методы отличаются от немутирующих?
Follow-up к вопросу про методы массива
03
Теория
Пришёл массив: нужно его изменить и при этом удалить элементы по условию. Как бы ты это сделал?
Кандидат предложил filter + map
04
Теория
Filter + map — это два прогона по массиву. Как уместить изменение и фильтрацию в один проход?
Заметки
Это мок-собеседование (тренировочное интервью) от сообщества Criminal IT, помогающего с трудоустройством в IT, а не собеседование в компанию-работодателя. Формат — техническая Q&A-сессия по фронтенду: JavaScript (массивы, объекты, копирование, логические операторы, функции, промисы), React (Virtual DOM, ререндер, хуки, мемоизация), Redux, TypeScript, Webpack, Git. Алгоритмическую практическую задачу решили не давать («нужно визуально показывать»). Упоминается предыдущий разговор кандидата с Сергеем (вероятно, другая секция мока), где обсуждалась мемоизация.
Стиль интервьюера
Доброжелательный, разговорный стиль: задаёт наводящие вопросы и follow-up'ы, при затруднениях сам подсказывает и подробно объясняет правильный ответ (reduce, useCallback + React.memo, useState vs переменная, useSelector). Адаптирует сложность под опыт кандидата («сильно простые вопросы не буду задавать»). Много мини-примеров на вычисление выражений вместо полноценного лайвкодинга.
Ожидаемый ответ: reduce — кандидат не ответил, интервьюер подсказал
05
Теория
Как вообще можно создать объект в JavaScript?
06
Теория
Объект — это какой тип данных? Чем сложные типы данных отличаются от простых? Почему объект — это сложный тип данных?
Ожидаемый ответ: ссылочный тип данных
07
Теория
Что ты знаешь про копии объектов? Зачем вообще делать копии?
08
Теория
Чем глубокое копирование объекта отличается от неглубокого (поверхностного)?
09
Теория
Делал ли ты когда-нибудь глубокую копию? Знаешь ли простой способ сделать глубокое копирование?
Обсудили JSON.stringify + JSON.parse и structuredClone
10
Теория
Пришёл массив из строк, эти строки — названия свойств. Нужно с помощью этого массива создать объект с такими названиями свойств (динамически). Возможно ли это и как синтаксически задать свойство объекта из переменной?
Ожидаемый ответ: квадратные скобки (computed property names)
11
Теория
Какие есть логические операторы в JavaScript?
12
Теория
Что вернётся, если вычислить выражение: пустая строка ИЛИ единица ИЛИ пустой массив?
'' || 1 || []Кандидат правильно ответил: 1
13
Теория
Что вернётся, если вычислить выражение: пустая строка И единица И пустой массив?
'' && 1 && []Кандидат правильно ответил: вернётся пустая строка (falsy)
14
Теория
Для чего нужны функции в JavaScript и в программировании в целом? Какие функции бывают в JavaScript?
15
Теория
Чем классические функции отличаются от стрелочных?
Интервьюер уточнил: контекст наследуется от места создания, а не вызова
16
Теория
Почему в React для колбэков и прокидывания функций используются стрелочные функции?
17
Теория
Что ты знаешь про промисы? Используешь ли их? Какие у промиса есть состояния?
18
Теория
Для чего ты в основном использовал промисы?
Ответ: для запросов, обработка через then
19
Теория
Для чего нужен catch у промиса?
20
Теория
Для чего нужен finally и в каких случаях он вызовется?
Follow-up: вызовется ли finally, если then сработал / не сработал — ответ: в любом случае
21
Теория
Какая альтернатива промисам есть (async/await)? В чём разница между async/await и промисами?
Кандидат ошибся в хронологии появления — интервьюер поправил: async/await появился позже, это синтаксический сахар над промисами
22
Теория
Сталкивался ли с библиотекой axios? Для чего она нужна?
23
Теория
Чем GET и POST запросы отличаются с точки зрения фронтенд-разработчика?
Обсудили query-параметры и тело запроса
24
Теория
Чем protected методы отличаются от public методов? В чём отличие их использования с точки зрения фронта?
Кандидат ответил про инкапсуляцию (protected/private/public); интервьюер, судя по всему, имел в виду защищённые эндпоинты/запросы (куки, домен)
25
Теория
Какие вообще алгоритмы знаешь?
Кандидат назвал два указателя, перебор, рекурсию; практическую задачу интервьюер решил не давать из-за формата
26
Теория
Зачем нужен React — в чём его преимущество и смысл для разработчика и для пользователя?
27
Теория
В чём именно заключается ускорение разработки при использовании React?
Follow-up: компонентный подход, переиспользуемость, JSX
28
Теория
JSX — это надстройка над JS. С помощью чего React/JSX преобразуется в JavaScript?
Цепочка follow-up'ов: сборщик (webpack) → что использует webpack → Babel (транспилятор)
29
Теория
Расскажи, как работает Virtual DOM в React.
30
Теория
Как React сравнивает старую и новую копию Virtual DOM с точки зрения объектов? Что должно отличаться у двух объектов, чтобы сработало сравнение?
Ожидаемый ответ: ссылка должна измениться (иммутабельность, поэтому в Redux возвращаем копию state)
31
Теория
Какие триггеры есть у компонента React для перерендеривания?
Кандидат назвал state и props; интервьюер дополнил: перерендер родителя и изменение контекста
32
Теория
Есть компонент без обёрток (без React.memo). Есть ли разница между прокидыванием в него обычной функции и функции, мемоизированной через useCallback?
Кандидат не ответил; интервьюер объяснил: без React.memo разницы нет, useCallback имеет смысл только вместе с React.memo. Упоминается, что про мемоизацию кандидат уже говорил с Сергеем (другой этап/секция)
33
Теория
Для чего вообще нужны хуки в React?
34
Теория
Почему для хранения состояния используется useState, а не просто переменная?
Кандидат точно не вспомнил; интервьюер объяснил: переменная перезаписывается при каждом рендере, state фиксируется
35
Теория
Как можно затриггерить срабатывание useEffect? Что будет, если не передать массив зависимостей, и что — если передать пустой массив?
36
Теория
Как ты использовал Redux? Для чего нужны Redux и стейт-менеджеры в целом?
Обсудили props drilling и глобальное хранилище
37
Теория
Как достать состояние из стора (Redux) в компонент, не прокидывая его через пропсы? Какой хук для этого есть?
Кандидат назвал useContext; интервьюер подсказал useSelector (принимает колбэк с state)
38
Теория
Для чего нужен TypeScript?
39
Теория
Играет ли TypeScript какую-то роль для бизнеса после того, как проект залит (задеплоен)?
Ответ: нет, TypeScript транспилируется в JavaScript — это инструмент для разработчиков
40
Теория
Какие основные типы существуют в TypeScript?
Обсудили never, void, any в дополнение к JS-типам
41
Теория
Что ты знаешь про дженерики в TypeScript?
42
Теория
Что можешь сказать про интерфейсы в TypeScript?
43
Теория
Что можешь рассказать про Webpack? Как его использовать и настраивать (конфигурация, плагины)?
Webpack указан в резюме кандидата; кандидат сам его не настраивал
44
Теория
Чем Angular отличается от React с точки зрения разработчика (например, по части библиотек из коробки)?
Angular указан у кандидата в использовании; ожидаемый ответ: Angular — всё из коробки, React — «голая» библиотека с кастомизацией
45
Теория
Пользовался ли ты Git? Какие основные операции делал (pull, fork и т.д.)?