> Как отлаживать ошибки в коде (JavaScript)

Уровень: senior · Роль: frontend · Язык: JavaScript · Категория: Технические вопросы

Компании: ЭНИРАН

Стек: Node.js, JavaScript

> Пример ответа

Отладка ошибок в JavaScript/Node.js — это системный процесс. Основные шаги:

  1. Воспроизведение ошибки: Сначала нужно точно понять, при каких условиях возникает баг. Используйте console.log или debugger для отслеживания состояния.

  2. Чтение стектрейса: Node.js выводит полный стек вызовов при ошибке. Ищите первую строку, указывающую на ваш код, а не на библиотеки.

  3. Инструменты:

    • Chrome DevTools для клиентского JS: вкладка Sources, точки останова (breakpoints), пошаговое выполнение.
    • Node.js Inspector: запуск с флагом --inspect, затем подключение через Chrome DevTools (chrome://inspect).
    • VS Code: встроенный дебаггер — ставьте точки останова, запускайте с конфигурацией Node.js.
  4. Логирование: Используйте console.error для ошибок, console.warn для предупреждений. Для сложных случаев — библиотеки вроде debug или pino.

  5. Обработка исключений: Оберните критичные участки в try/catch и логируйте полную информацию об ошибке, включая error.stack.

  6. Типичные ошибки в Node.js:

    • Асинхронные ошибки (необработанные промисы) — используйте process.on('unhandledRejection').
    • Утечки памяти — профилируйте с помощью --inspect и вкладки Memory.
    • Ошибки в колбэках — проверяйте первый аргумент (error-first pattern).
  7. Автоматизация: Настройте ESLint для статического анализа, используйте TypeScript для типизации, пишите юнит-тесты (Jest, Mocha).

Пример быстрой отладки: если функция не возвращает ожидаемое значение, вставьте console.log({ input, result }) перед return и проверьте данные. Если ошибка в асинхронном коде — добавьте .catch(console.error) к промису.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью