В чем разница между 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 — для сложных багов.