JavaScript:
Korzystanie z debugera
Jak to zrobić:
Oto fragment kodu JavaScript, który nie działa zgodnie z oczekiwaniami:
function buggyMultiply(a, b) {
return a + b; // Ups! To powinna być mnożenie, a nie dodawanie.
}
let result = buggyMultiply(5, 3);
console.log('Wynik:', result);
Wynik jest niepoprawny:
Wynik: 8
Debugowanie w narzędziach deweloperskich Chrome:
- Otwórz ten JS w przeglądarce.
- Kliknij prawym przyciskiem i wybierz “Zbadaj” aby otworzyć DevTools.
- Kliknij zakładkę “Źródła”.
- Znajdź swój fragment kodu lub stronę i ustaw punkt przerwania, klikając numer linii obok instrukcji
return
. - Odśwież stronę, aby uruchomić punkt przerwania.
- Sprawdź panel “Zakres” aby zobaczyć lokalne zmienne
a
ib
. - Przesuń się za pomocą przycisku “Przejdź do następnej funkcji”.
- Znajdź błąd w instrukcji
return
. - Popraw kod:
function buggyMultiply(a, b) {
return a * b; // Poprawione!
}
let result = buggyMultiply(5, 3);
console.log('Wynik:', result);
Poprawiony wynik:
Wynik: 15
Pogłębiona analiza
Koncepcja debugowania istnieje od wczesnych dni komputeryzacji—legenda mówi, że zaczęła się, kiedy w komputerze znaleziono ćmę w latach 40-tych! Dzisiaj, debugery JavaScript, takie jak wbudowane narzędzia przeglądarek (Chrome DevTools, Narzędzia deweloperskie Firefox) czy debugery zintegrowane z IDE (Visual Studio Code, WebStorm) oferują mnóstwo funkcji.
Alternatywami dla wbudowanych debuggerów są narzędzia stron trzecich takie jak WebStorm lub korzystanie ze starego dobrego console.log
do wypisywania stanów zmiennych. Jednak nie oferują one interakcji w czasie rzeczywistym i szczegółowej inspekcji dostępnej w debuggerach.
Jeśli chodzi o szczegóły implementacji, większość debuggerów działa podobnie: pozwalają na ustawianie punktów przerwania, które zatrzymują wykonanie, krokowe przeglądanie kodu, inspekcję bieżących stanów zmiennych, obserwowanie wyrażeń, a nawet manipulację wartościami na bieżąco, aby testować różne scenariusze.