PurpleSchool — курсы программирования онлайн
  • Пути
    • Frontend React разработчик
    • Frontend Vue разработчик
    • Backend разработчик Node.js
    • Fullstack разработчик React / Node.js
    • Mobile разработчик React Native
    • Backend разработчик Golang
    • Devops инженер
    • Backend разработчик Python
  • AI для кодаНовое
  • О нас
    • Отзывы
    • Реферальная программа
    • О компании
    • Контакты
  • Иконка открытия меню
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
PurpleSchool — платформа бесплатных roadmap и курсов для разработчиков
ютуб иконка
Telegram иконка
VK иконка
VK иконка
Курсы
ГлавнаяКаталог курсовFrontendBackendFullstack
Практика
КарьераПроектыPurpleПлюс
Материалы
БлогБаза знаний
Документы
Договор офертаПолитика конфиденциальностиПроверка сертификатаМиграция курсовРеферальная программа
Реквизиты
ИП Ларичев Антон АндреевичИНН 773373765379contact@purpleschool.ru

PurpleSchool © 2020 -2026 Все права защищены

  • Курсы
    • FrontendИконка стрелки
    • AI разработкаИконка стрелки
    • BackendИконка стрелки
    • DevOpsИконка стрелки
    • MobileИконка стрелки
    • ТестированиеИконка стрелки
    • Soft-skillsИконка стрелки
    • ДизайнИконка стрелки
    Иконка слояПерейти в каталог курсов
  • Бесплатно
    • Курсы
    • JavaScript Основы разработкиPython Основы PythonCSS CSS FlexboxКарта развитияВопросы для собеседований
    • База знанийИконка стрелки
    • Новостные рассылкиИконка стрелки
  • PurpleSchool — курсы программирования онлайн
    • AI для кодаНовое
    • Сообщество
    • PurpleПлюс
    • AI Собеседование
    • AI тренажёр
    • Проекты
    Главная
    Сообщество
    Вопросы на собеседовании Junior Frontend: разбор с примерами кода

    Вопросы на собеседовании Junior Frontend: разбор с примерами кода

    Аватар автора Вопросы на собеседовании Junior Frontend: разбор с примерами кода

    Антон Ларичев

    Иконка календаря13 сентября 2026
    frontendjavascriptсобеседованиеcssjuniorjuniorИконка уровня junior
    Картинка поста Вопросы на собеседовании Junior Frontend: разбор с примерами кода

    Введение

    Собеседование на позицию Junior Frontend разработчика редко проверяет глубокие знания архитектуры — вместо этого работодатель хочет убедиться, что кандидат понимает базовые механизмы JavaScript, CSS и браузера, а не просто копирует код из туториалов. В этой статье разберём типичные вопросы, которые встречаются на таких собеседованиях, с примерами кода и объяснением, почему ответ именно такой.

    Вопросы по HTML и CSS

    Один из самых частых вопросов — разница между block, inline и inline-block. Блочные элементы занимают всю ширину родителя и начинаются с новой строки, строчные — только ширину содержимого и не разрывают строку, а inline-block совмещает поведение: не разрывает строку, но позволяет задавать ширину и высоту.

    Часто спрашивают про box-sizing:

    /* по умолчанию padding и border увеличивают итоговый размер блока */
    .box {
      box-sizing: content-box;
      width: 200px;
      padding: 20px;
      border: 5px solid black;
      /* итоговая ширина будет 250px */
    }
    
    /* border-box включает padding и border в заданную ширину */
    .box-fixed {
      box-sizing: border-box;
      width: 200px;
      padding: 20px;
      border: 5px solid black;
      /* итоговая ширина останется 200px */
    }
    

    Также проверяют понимание Flexbox и Grid: чем они отличаются и когда что использовать. Flexbox лучше подходит для одномерной раскладки (в строку или столбец), а Grid — для двумерной сетки с явным контролем строк и колонок.

    Вопросы по JavaScript: основы

    Классический вопрос — разница между var, let и const. Переменные var имеют функциональную область видимости и поднимаются (hoisting) с инициализацией undefined, а let и const имеют блочную область видимости и попадают во временную мёртвую зону до объявления.

    console.log(a); // undefined, потому что var поднимается
    var a = 1;
    
    console.log(b); // ошибка ReferenceError
    let b = 2;
    

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

    function createCounter() {
      let count = 0;
      // возвращаемая функция "помнит" переменную count
      return function () {
        count += 1;
        return count;
      };
    }
    
    const counter = createCounter();
    console.log(counter()); // 1
    console.log(counter()); // 2
    

    Часто спрашивают про поведение this в разных контекстах, особенно в стрелочных функциях, которые не имеют собственного this и берут его из внешнего лексического контекста.

    const obj = {
      name: "Junior",
      regularFn: function () {
        console.log(this.name); // "Junior", this — объект obj
      },
      arrowFn: () => {
        console.log(this.name); // undefined, this берётся снаружи
      },
    };
    

    Асинхронность в JavaScript

    Асинхронность — одна из самых частых тем на собеседованиях junior уровня. Кандидату важно объяснить разницу между колбэками, промисами и async/await, а также понимать, что такое event loop и очередь микрозадач.

    console.log("старт");
    
    setTimeout(() => {
      console.log("таймер"); // выполнится после микрозадач
    }, 0);
    
    Promise.resolve().then(() => {
      console.log("промис"); // выполнится раньше таймера
    });
    
    console.log("конец");
    
    // порядок вывода: старт, конец, промис, таймер
    

    Это классический вопрос про очередь микрозадач и макрозадач: промисы обрабатываются раньше, чем колбэки setTimeout, потому что микрозадачи имеют более высокий приоритет.

    Также стоит уметь объяснить async/await как синтаксический сахар над промисами:

    async function getUser() {
      try {
        const response = await fetch("/api/user");
        const data = await response.json();
        return data;
      } catch (error) {
        // обработка ошибки сети или парсинга
        console.error("Ошибка загрузки пользователя", error);
      }
    }
    

    Вопросы по DOM и браузеру

    Кандидата могут спросить про разницу между событиями bubbling и capturing. По умолчанию события всплывают от целевого элемента к родителям, но можно перехватить их и на фазе погружения.

    document.getElementById("parent").addEventListener(
      "click",
      () => console.log("фаза погружения"),
      true // третий аргумент включает capturing
    );
    

    Ещё частый вопрос — разница между localStorage, sessionStorage и cookies. localStorage хранит данные без срока действия, sessionStorage — только на время сессии вкладки, а cookies отправляются на сервер с каждым запросом и имеют ограниченный размер.

    Вопросы по инструментам и экосистеме

    HR и технические интервьюеры часто спрашивают про базовые команды Git (git rebase, git merge, разрешение конфликтов), про то, зачем нужны бандлеры вроде Webpack или Vite, и почему код транспилируют через Babel. Junior разработчику важно понимать, что эти инструменты решают: сборку модулей, оптимизацию и поддержку старых браузеров.

    Частые ошибки

    Кандидаты часто путают null и undefined, не могут объяснить разницу между поверхностным и глубоким копированием объектов, а также путаются в приоритете CSS-селекторов. Ещё одна типичная ошибка — заучивание определений без понимания: например, кандидат говорит, что замыкание это "функция внутри функции", но не может объяснить, зачем оно нужно и как работает на практике. Также многие не готовы объяснить, почему NaN !== NaN или почему сравнение объектов через === сравнивает ссылки, а не содержимое.

    Заключение

    Собеседование Junior Frontend разработчика в первую очередь проверяет фундамент: понимание JavaScript, CSS и работы браузера, а не количество выученных фреймворков. Лучшая подготовка — не заучивать ответы, а разбираться в механике языка настолько, чтобы уметь объяснить любой пример своими словами и написать рабочий код на собеседовании.

    Иконка глаза299

    Комментарии

    0

    Постройте личный план изучения Nuxt - fullstack Vue фреймворк до уровня Middle — бесплатно!

    Nuxt - fullstack Vue фреймворк — часть карты развития Frontend

    • step100+ шагов развития
    • lessons30 бесплатных лекций
    • lessons300 бонусных рублей на счет

    Бесплатные лекции

    Лучшие курсы по теме

    изображение курса

    Основы разработки

    Антон Ларичев
    Гарантия
    Бонусы
    иконка звёздочки рейтинга5.0
    бесплатно
    Подробнее
    изображение курса

    Angular

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.6
    3 999 ₽ 6 990 ₽
    Подробнее
    изображение курса

    Feature-Sliced Design

    Антон Ларичев
    AI-тренажерыAI-тренажеры
    Практика в студииПрактика в студии
    Гарантия
    Бонусы
    иконка звёздочки рейтинга4.6
    3 999 ₽ 6 990 ₽
    Подробнее

    Похожие статьи

    Картинка поста Claude без VPN в России: как пользоваться в 2026
    Иконка аватараАнтон
    Иконка календаря16 октября 2026
    AnthropicAI-инструментыClaude CodejuniorИконка уровня junior

    Claude без VPN в России: как пользоваться в 2026

    Сайт claude.ai и приложения Claude из России без VPN не работают: Anthropic не включает Россию в список поддерживаемых регионов и закрывает доступ и к чату, и к API. Без VPN Claude доступен одним способом — через API-посредника, который сам обращается к Anthropic из поддерживаемой страны, а вам выдаёт ключ с оплатой в рублях. Так работает AI для кода от PurpleSchool: ключ подключается к Claude Code, VS Code, Cursor и другим инструментам разработчика, а также к вашему собственному коду. Окно чата как на claude.ai такой способ не даёт — это доступ к модели, а не к сайту.

    Иконка чипа0
    Иконка глаза16
    Иконка комментариев0
    Картинка поста Как настроить CI/CD пайплайн с нуля: полное руководство
    Иконка аватараАнтон
    Иконка календаря14 октября 2026
    CI/CDDevOpsGitHub Actions+ 2middleИконка уровня middle

    Как настроить CI/CD пайплайн с нуля: полное руководство

    CI/CD пайплайн с нуля: как собрать рабочий конвейер сборки, тестов и деплоя на примере GitHub Actions и Docker без лишней теории.

    Иконка чипа0
    Иконка глаза109
    Иконка комментариев0
    Картинка поста CLAUDE.md: как написать инструкции для Claude Code
    Иконка аватараАнтон
    Иконка календаря11 октября 2026
    AI-инструментыClaude CodeDevOps+ 1middleИконка уровня middle

    CLAUDE.md: как написать инструкции для Claude Code

    CLAUDE.md — это файл с инструкциями по проекту, который Claude Code читает в начале каждой сессии. Положите его в корень репозитория и опишите внутри, чем проект собирается, чем запускаются тесты и каких соглашений держаться в коде. После этого агент перестанет спрашивать одно и то же в каждом новом диалоге и предлагать решения, которые в вашей кодовой базе не приняты. Формат предельно простой: обычный Markdown, обязательных полей нет, заголовки любые. Дальше — где именно создавать файл и как Claude Code собирает инструкции сразу из нескольких мест, что писать внутрь, как подключать к файлу другие документы и чем CLAUDE.md отличается от AGENTS.md. Одна оговорка перед началом: Claude Code обновляется часто, набор команд и поддерживаемых файлов пополняется. Если какая-то деталь ниже ведёт себя у вас иначе, сверяйтесь с документацией той версии, которая стоит у вас.

    Иконка чипа0
    Иконка глаза329
    Иконка комментариев0
    Иконка чипа0