Онлайн-редактор кода 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 — он есть в списке языков редактора.
- После бесплатного входа — банк задач, режим интервью с таймерами, оценка кандидата и история собеседований.
Как провести собеседование
- Нажмите «Открыть редактор JavaScript» — сессия создастся с примером кода, его можно стереть или изменить под свою задачу.
- Опишите условие в Markdown и отправьте ссылку кандидату: регистрация ему не нужна.
- Обсуждайте решение по ходу: кандидат запускает код, а вы оба видите вывод и ошибки. Задачи на асинхронность удобно проверять прямо выводом — порядок строк в консоли всё покажет.
Типичные задачи на собеседовании
- Реализовать 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 есть в списке языков редактора: его можно выбрать в той же сессии.