PassFront
  1. PassFront
  2. База знаний
  3. Ошибки и отладка

В чем разница между Debugger и консолью?

Ошибки и отладка

Debugger и консоль — разные инструменты отладки: консоль выводит информацию (`console.log`), а debugger приостанавливает выполнение для пошагового анализа состояния.

Консоль (console.log)

Выводит значения в процессе выполнения — код продолжает работать:

console.log('значение:', x);
console.table(users);
console.trace(); // стек вызовов
  • Плюсы: быстро, просто, не останавливает выполнение.
  • Минусы: нужно менять код, видны только явно выведенные значения, много логов замусоривают, не покажешь всё состояние сразу.

Debugger (точки останова)

Приостанавливает выполнение в точке, позволяя осмотреть всё состояние:

function calc(x) {
  debugger; // остановка здесь
  return x * 2;
}

Или breakpoint в DevTools Sources.

  • Плюсы: пошаговое выполнение (step over/into/out), видно все переменные, стек вызовов, scope; условные breakpoints; не нужно менять код (breakpoint в DevTools).
  • Минусы: медленнее для быстрой проверки, требует остановки.

Главное различие

  • Консоль — пассивный вывод (код работает, смотрим что вывели).
  • Debugger — активная остановка (замораживаем выполнение, исследуем состояние пошагово).

Как выбирать

  • Быстрая проверка значения → console.log.
  • Сложный баг, непонятный поток, нужно всё состояние → debugger/breakpoints.

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

Консоль (console.log) выводит значения, не останавливая выполнение — быстро, но видны только явные логи. Debugger приостанавливает код в точке останова для пошагового обхода и осмотра всего состояния (переменные, стек, scope). Консоль — для быстрой проверки, debugger — для сложных багов.

Другие вопросы раздела