JavaScript:
Використання дебагера

Як:

Ось шматочок коду JavaScript, який поводиться не так, як очікувалось:

function buggyMultiply(a, b) {
    return a + b; // Ой! Тут мала бути множення, а не додавання.
}

let result = buggyMultiply(5, 3);
console.log('Результат:', result);

Вивід некоректний:

Результат: 8

Давайте знайдемо помилку за допомогою Chrome DevTools:

  1. Відкрийте цей JS у браузері.
  2. Клацніть правою кнопкою миші та виберіть “Inspect” (Огляд) для відкриття DevTools.
  3. Натисніть вкладку “Sources” (Джерела).
  4. Знайдіть ваш фрагмент коду або сторінку та встановіть точку зупинки, клацнувши на номері рядка поруч з оператором return.
  5. Оновіть сторінку, щоб активувати точку зупинки.
  6. Перевірте панель “Scope” (Область), щоб побачити локальні змінні a та b.
  7. Прокрокуйте за допомогою кнопки “Step over next function call” (Пропустити виклик наступної функції).
  8. Виявіть помилку в операторі return.
  9. Виправте код:
function buggyMultiply(a, b) {
    return a * b; // Виправлено!
}

let result = buggyMultiply(5, 3);
console.log('Результат:', result);

Виправлений вивід:

Результат: 15

Поглиблене вивчення

Концепція дебагінгу існує з ранніх днів обчислювальної техніки — легенда каже, що вона почалася, коли в комп’ютері знайшли метелика у 1940-х роках! Сьогодні дебагери JavaScript, як вбудовані інструменти браузера (Chrome DevTools, інструменти розробника Firefox) або дебагери, інтегровані в IDE (Visual Studio Code, WebStorm), пропонують безліч функцій.

Альтернативи вбудованим дебагерам включають сторонні інструменти, як-от WebStorm, або використання доброго старого console.log для виведення станів змінних. Але ці методи не пропонують реальної взаємодії в реальному часі та детального огляду, які забезпечують дебагери.

Що стосується деталей реалізації, то більшість дебагерів працюють подібно: вони дозволяють вам встановлювати точки зупинки, які призупиняють виконання, крокувати по коду, інспектувати поточні стани змінних, спостерігати за виразами та навіть маніпулювати значеннями на льоту, щоб тестувати різні сценарії.

Дивіться також