Jednym z interfejsów programistycznych wchodzących w skład tzw. Web APIs jest Console. W ramach tego API udostępniany jest globalny obiekt console, który zapewnia dostęp do konsoli przeglądarki. Dostarczane w jego ramach metody potrafią znacznie ułatwić – często żmudny i trudny – proces debugowania stron i aplikacji internetowych. W ramach niniejszego artykułu zaprezentowane zostaną najciekawsze i najbardziej przydatne elementy tego interfejsu.

Jak zostać programistą - konsola JavaScript

JavaScript Console dla początkujących programistów

 

Konsola JavaScript – podstawowe metody

Prawdopodobnie najczęściej używaną metodą tego API jest log. Służy ona do wypisania wiadomości w konsoli przeglądarki. Wiadomość konstruowana jest poprzez przekazanie jednego lub więcej parametrów w wywołaniu metody (mogą być one np. ciągami znaków, lub obiektami JavaScript). Jednym z najczęstszych zastosowań console.log jest wypisanie w konsoli wartości danej zmiennej. Na poniższym zrzucie ekranowym zaprezentowany został przykład użycia tej metody.

Jak zostać programistą - konsola JavaScript log

JavaScript Console dla początkujących programistów – metoda log

 

Konsola JavaScript – komunikaty, wiadomości, logi

Ciekawą opcją udostępnianą przez ConsoleAPI jest możliwość ostylowania wiadomości. W przypadku metody console.log, do jej pierwszego argumentu należy dodać “%c” – w następnym z kolei należy zdefiniować styl tekstu (reguły CSS oddzielone średnikami, jako tekst).

W jednym wywołaniu metody log można stosować różne style do różnych jej fragmentów – oddzielnie stylowane fragmenty należy wskazać poprzez użycie “%c”. Poszczególne style należy przekazać jako kolejne argumenty. Przykład ostylowania komunikatów ukazany został na poniższej grafice.

Jak zostać programistą - konsola JavaScript log

JavaScript Console dla początkujących programistów – metoda log

 

Console.API udostępnia także mechanizm, który pozwala na konstruowanie komunikatów (zawierających zmienne oraz obiekty) w bardziej wygodny sposób. Służą do tego tzw. substitution strings i mogę one zostać zastosowane w każdej metodzie obiektu console, która akceptuje jako argument łańcuch znaków. Końcowy komunikat generowany jest poprzez wstawienie w ich miejsce wartości dalszych argumentów, które mogą zostać odpowiednio sformatowane. Różnią się one w zależności od tego, czy wstawiana wartość jest: obiektem (“%o” lub “%O”), liczbą naturalną (“%d” lub “%i), łańcuchem znaków (“%s”), czy liczbą zmiennoprzecinkową (“%f”). Przykład wykorzystania tego mechanizmu zaprezentowany został na poniższej grafice.

Jak zostać programistą - konsola JavaScript strings

JavaScript Console dla początkujących programistów – metoda strings

 

Metodą podobną w swoim działaniu do omawianej powyżej jest dir. Służy ona do wyświetlenia listy właściwości danego obiektu JavaScript. Podstawową różnicą między nimi jest szczególne traktowanie elementów HTML przez console.log (wyświetlenie elementu HTML w konsoli jako kod HTML). Metoda console.dir skupia się na potraktowaniu elementu HTML jako obiektu (i zgodnie z przeznaczeniem – wyświetla listę jego właściwości). Różnica ta zaprezentowana została na poniższym zrzucie ekranowym (polecenia wykonane zostały w konsoli na stronie google.com).

Jak zostać programistą - konsola JavaScript dir

 

Konsola JavaScript – tablice

Metodą szczególnie użyteczną w wyświetlaniu obiektów i tablic jest table. Stosowanie dotychczas zaprezentowanych metod może stać się niewygodne, gdy mamy do czynienia np. z tablicą obiektów. console.table pozwala na zaprezentowanie obiektu lub tablicy w formie tabeli, która często okazuje się zdecydowanie bardziej czytelna od rozwijanych list właściwości. Przekazywanym do metody parametrem jest obiekt lub tablica z danymi do wyświetlenia. W przypadku, gdy chcemy wyświetlić w tabeli jedynie wybrane właściwości obiektu, w drugim (opcjonalnym) argumencie definiujemy tablicę z nazwami tych właściwości. Poniżej zaprezentowano przykład wykorzystania metody table.

Jak zostać programistą - konsola JavaScript table

JavaScript Console dla początkujących programistów – metoda table

 

Konsola JavaScript – czas

Console API może okazać się przydatne, jeśli istnieje potrzeba zmierzenia czasu wykonania danego bloku kodu. Realizację tego zadania umożliwiają metody time oraz timeEnd. Należy wywołać je z tą samą etykietą (przekazaną w parametrze). Użycie metody console.time uruchamia timer, console.timeEnd natomiast zatrzymuje go i wyświetla w konsoli czas (w milisekundach), jaki upłynął od jego uruchomienia. Wyświetlany czas poprzedzony jest etykietą danego timera. Wspólne wykorzystanie tych metod może znaleźć zastosowanie w testach wydajnościowych aplikacji lub strony.

Poniższy zrzut ekranowy prezentuje przykład zastosowania console.time i console.timeEnd. Dwukrotnie zmierzono czas sumowania w pętli kolejnych liczb naturalnych – testy różniły się granicą sumowania. W pierwszym teście wykonanie pętli trwało niecałe 4 milisekundy, w drugim natomiast (przy znacznym zwiększeniu zakresu sumowania) – ponad 9 sekund.

Jak zostać programistą - konsola JavaScript time

JavaScript Console dla początkujących programistów – metoda time

 

Konsola JavaScript – grupowanie komunikatów

Zbyt duża liczba instrukcji Console API może sprawić, że zawartość konsoli przeglądarki stanie się dla programisty mało czytelna. W takim wypadku pomocne mogą okazać się metody służące do grupowania komunikatów – group, groupCollapsed oraz groupEnd. Grupowanie wiadomości polega na zdefiniowaniu oznaczonych etykietą grup, które w konsoli przeglądarki wyświetlać się będą w postaci rozwijalnych, czytelnych sekcji komunikatów.

Metody console.group oraz console.groupCollapsed przyjmują opcjonalny parametr, określający etykietę danej grupy – różnica między nimi polega na sposobie prezentowania danej grupy w konsoli (w przypadku pierwszej z nich grupa jest domyślnie rozwinięta, dla drugiej natomiast – zwinięta). Wywołanie metody console.groupEnd zamyka listę komunikatów wchodzących w skład otwartej w danym momencie grupy.

Mechanizm ten pozwala także na tworzenie grup zagnieżdżonych – w tym celu należy utworzyć kolejną grupę przed zamknięciem obecnie otwartej.
Poniższa grafika prezentuje przykład wykorzystania grupowania komunikatów. Przedstawione skrypty obrazują tworzenie grup rozwiniętych (console.group) oraz zwiniętej grupy zagnieżdżonej (console.groupCollapsed).

Jak zostać programistą - konsola JavaScript group

JavaScript Console dla początkujących programistów – metoda group

 

W konsoli przeglądarki wyświetlane są także komunikaty pełniące rolę informacji, błędów lub ostrzeżeń. Console API udostępnia metody dedykowane dla tego typu wiadomości – są to odpowiednio: info, warn oraz error. Pozwalają one na wyświetlanie łańcuchów znaków i obiektów JavaScript, a generowane przez nie komunikaty różnią się wyglądem. Przykład użycia tych metod ukazany został na poniższym zrzucie ekranowym.

Jak zostać programistą - konsola JavaScript info

JavaScript Console dla początkujących programistów – metoda info

 

Jak zostać programistą: konsola JavaScript

Mechanizmy dostępne w Console API mogą okazać się bardzo pomocne w przypadku debugowania i analizy wydajności aplikacji. Umiejętne ich wykorzystanie wiąże się z szeregiem korzyści, które dotyczą zawartości konsoli. Pierwszą z nich jest uzyskiwanie wiedzy dotyczącej wartości interesujących nas bytów.

Dzięki opcji formatowania i stylowania komunikatów oraz subsitution strings z kolei uzyskujemy lepszą czytelność zawartości konsoli. Kolejną zaletą jest możliwość wyświetlenia danego obiektu lub tablicy – często skomplikowanego – w przejrzystej formie tabeli, pozwalającej na wyświetlenie jedynie tych właściwości, które nas interesują.

Dzięki mechanizmom grupującym komunikaty uzyskujemy z kolei lepszą organizację zawartości w konsoli, w której poszczególne grupy mogą zostać zwinięte (a więc panujemy także nad objętością wyświetlonych wiadomości). Wreszcie – dzięki metodom uwzględniającym znaczenie komunikatu – może w sposób wizualny wyróżniać wiadomości dotyczące informacji, ostrzeżeń oraz błędów.