Онлайн-редактор кода JavaScript для собеседований

Общий редактор JavaScript по одной ссылке: вы и кандидат пишете код вместе, запускаете его на Node.js и сразу видите вывод. Подходит для собеседований фронтенд- и бэкенд-разработчиков на чистом JavaScript. Бесплатно и без регистрации.

Бесплатно, без регистрации

Пример кода

function debounce(fn, ms) {
  let timer;
  return (...args) => {
    clearTimeout(timer);
    timer = setTimeout(() => fn(...args), ms);
  };
}

const log = debounce((msg) => console.log(msg), 100);
log('a');
log('b'); // напечатается только «b»

Вывод

b

Что умеет редактор

  • Node.js 20: код выполняется на сервере в изолированной песочнице, вывод console.log и ошибки видят все участники.
  • Совместное редактирование в реальном времени: до 5 участников, правки и курсоры видны сразу.
  • Условие задачи в Markdown прямо в сессии, рядом с кодом.
  • Автотесты: юнит-тесты задачи запускаются из сессии, и видно, сколько из них прошло.
  • В той же сессии можно переключиться на TypeScript — он есть в списке языков редактора.
  • После бесплатного входа — банк задач, режим интервью с таймерами, оценка кандидата и история собеседований.

Как провести собеседование

  1. Нажмите «Открыть редактор JavaScript» — сессия создастся с примером кода, его можно стереть или изменить под свою задачу.
  2. Опишите условие в Markdown и отправьте ссылку кандидату: регистрация ему не нужна.
  3. Обсуждайте решение по ходу: кандидат запускает код, а вы оба видите вывод и ошибки. Задачи на асинхронность удобно проверять прямо выводом — порядок строк в консоли всё покажет.

Типичные задачи на собеседовании

  • Реализовать debounce и throttle и объяснить, чем они отличаются и где применяются.
  • Написать свою версию Promise.all: результаты в исходном порядке и отказ при первой ошибке.
  • Предсказать порядок вывода с setTimeout, Promise и queueMicrotask — классический вопрос про event loop.
  • Замыкания в цикле: почему var и let дают разный результат и как это исправить без let.
  • Глубокое сравнение или глубокое копирование объектов без сторонних библиотек, с учётом вложенных массивов.
  • Преобразовать вложенный массив в плоский без Array.prototype.flat — рекурсией или стеком.

Ограничения

  • Код выполняется в Node.js, а не в браузере: DOM, window и превью HTML или React недоступны.
  • Нет ввода с клавиатуры — данные задавайте в коде.
  • Один запуск ограничен 3 секундами и 64 КБ вывода.

Частые вопросы

На какой версии запускается JavaScript?
На Node.js 20. Код выполняется на сервере, поэтому поведение одинаково у всех участников.
Можно ли проверить задачи на DOM или React?
Нет: браузерного окружения и превью в сессии нет. Для фронтенд-собеседования подойдут задачи на чистый JavaScript — замыкания, промисы, event loop, работа с массивами и объектами.
Есть ли автотесты?
Да. Если у задачи есть юнит-тесты, их можно запустить из сессии и увидеть, сколько прошло. Банк задач и свои задачи с тестами доступны после бесплатного входа.
А TypeScript поддерживается?
Да, TypeScript есть в списке языков редактора: его можно выбрать в той же сессии.

Редактор для других языков