Вернуться в видеотекуКоротко о видео
Это учебное пробное техническое интервью по JavaScript с Альбертом, который, по собственным словам, изучает язык около двух лет в режиме хобби. В теоретической части разбирают переменные и hoisting, типы и преобразования, ссылки, замыкания, `this`, функции, объекты, массивы и классы. Затем кандидат выполняет лайвкодинг: пишет функции, исследует `setTimeout`, методы массивов, `reduce`, rest/spread-синтаксис, деструктуризацию и замыкание.
Затронутые темы
Что взять на заметку
- Для вопросов про `var`, `let` и `const` нужно связно объяснять область видимости, повторное объявление и присваивание, а также hoisting; отдельно уметь показать различие Function Declaration и Function Expression.
- Стоит подготовить точные ответы про `null`, `undefined` и `typeof`: оператор возвращает строку, а массивы и функции имеют особенности результата `typeof`.
- Нужно различать неявное приведение при `==` и строгое сравнение `===`, а явное преобразование показывать через вызовы наподобие `Number(...)`.
- На интервью проверяют понимание ссылочных типов: массивы, объекты и функции передаются по ссылке, поэтому изменение объекта через одну переменную видно через другую.
- Нужно уметь объяснить `call`, `apply` и `bind`, а также различие контекста у обычной и стрелочной функции.
- Для массивов важно не путать мутирующие и немутирующие методы, знать поведение `forEach`, `sort`, `splice`, `slice`, `filter` и `reduce`, включая роль начального значения в `reduce`.
- Полезно потренировать короткие задачи без восстановления готового кода: удалить элемент массива разными способами, посчитать сумму через `reduce`, объединить массивы через spread и извлечь функции через деструктуризацию.