JavaScript 2/2: konsola przeglądarki i pierwsze instrukcje
Dzisiaj:
Konsola przeglądarki (F12) - gdzie programista widzi wyniki swojego kodu
console.log a document.write - dwa różne wyjścia
Pierwsze instrukcje: zmienna, zwiększenie wartości, wypisanie wyniku
Czytanie czerwonego komunikatu błędu w konsoli
Rozgrzewka · 3 minuty
Rozgrzewka: poprzednia lekcja
Gdzie wykonuje się kod JavaScript: na serwerze czy w przeglądarce?
Wymieńcie dwa sposoby wstawienia kodu JavaScript do strony, które nadają się na start (bez atrybutu inline).
Dlaczego znacznik <script> umieszczamy na końcu <body>, a nie w <head>?
Część 1 · Narzędzia deweloperskie
Konsola przeglądarki
Konsola JavaScript to narzędzie do sprawdzania, czy kod działa tak, jak powinien. Otwiera się klawiszem F12 (na Windows też Ctrl+Shift+I), potem zakładka Console. Konsola pokazuje wszystko, co kod wypisze poleceniem console.log, a także błędy, które napotka po drodze.
MDN: Learn_web_development/Howto/Tools_and_setup/What_are_browser_developer_tools (sekcja „The JavaScript console”, skróty klawiszowe otwarcia narzędzi)
Część 2 · Trzy wyjścia
console.log, document.write, alert
To trzy różne sposoby pokazania wyniku działania skryptu. Trafiają w zupełnie inne miejsca:
MDN: Web/API/Document/write (ostrzeżenie „Use of the document.write() method is strongly discouraged”); What_are_browser_developer_tools (przykład użycia alert w konsoli)
Część 3 · Pierwsze instrukcje
Zmienna, zwiększenie, wypisanie
Trzy linijki, trzy różne instrukcje - dokładnie to, co za chwilę wpiszecie w ćwiczeniu:
var x = 10;
x++;
console.log(x);
Linijka
Co robi
var x = 10;
tworzy zmienną x i wstawia do niej wartość 10
x++;
zwiększa wartość x o 1 (skrót od x = x + 1)
console.log(x);
wypisuje bieżącą wartość x do konsoli
Wynik: w konsoli pojawi się 11 (do sprawdzenia w przeglądarce; sprawdzone też w Node.js).
Ciekawostka z Wikipedii: całą tę składnię (zmienne, operator ++, wywołanie funkcji) Brendan Eich napisał w 1995 roku w zaledwie dziesięć dni - tyle czasu dał mu Netscape przed premierą przeglądarki Navigator 2.0.
CKE, E.14, styczeń 2017, zad. 38 (bank pytań, ten sam kod) · ciekawostka: en.wikipedia.org/wiki/Brendan_Eich
Część 4 · Gdy coś nie działa
Czytanie błędu w konsoli
Literówka w nazwie console (np. consol.log) zatrzymuje skrypt i konsola pokazuje czerwony komunikat. Taki komunikat ma dwie części: co się stało i gdzie w pliku.
MDN: Learn_web_development/Core/Scripting/What_went_wrong (sekcja o czytaniu komunikatu błędu: „co się stało” i „gdzie w pliku”)
Egzamin INF.03
Tak pytają na egzaminie
1. W języku JavaScript zapisano fragment kodu.
<script>
var x = 10;
x++;
console.log(x);
</script>
Po wykonaniu skryptu zmienna x
będzie równa 11 i zostanie wypisana w oknie popup.
będzie równa 10 i zostanie wypisana w dokumencie HTML.
będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej.
będzie równa 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
Otwórz script.js z poprzedniej lekcji (w folderze swojego projektu).
Dopisz trzy linijki: var x = 10; x++; console.log(x);
Otwórz page.html w przeglądarce, wciśnij F12 i otwórz zakładkę Console - sprawdź, czy widać 11 (do sprawdzenia w przeglądarce).
Celowo zrób literówkę: zamień console.log na consol.log, zapisz i odśwież stronę.
Przeczytaj czerwony komunikat w konsoli: jaki błąd i w której linii? Popraw literówkę z powrotem.
Zapisz poprawiony plik i odśwież stronę - sprawdź, że w konsoli znowu widać 11.
Na koniec
Sprawdź się
Czym różni się console.log od document.write?
Jakie dwie informacje znajdziesz w czerwonym komunikacie błędu w konsoli?
Ile będzie wynosić x po wykonaniu var x = 10; x++;?
Na następnej lekcji: operatory i pierwsze zmienne w JavaScript.
Poza szkołą
A jak to wygląda w produkcji?
Na lekcji
W produkcji
Status
console.log do sprawdzania wartości
Zostawiony w kodzie trafiłby do każdego użytkownika strony; przed publikacją usuwają go narzędzia (linter, np. reguła ESLint no-console) albo bundler.
narzędzia
document.write
Zastąpiony zmianą zawartości elementu przez DOM (ang. Document Object Model, czyli strukturę strony w pamięci przeglądarki; element.textContent = ...), bo document.write może wyczyścić całą stronę po jej wczytaniu.
przestarzałe
alert do pokazania wyniku
Blokuje całą stronę do kliknięcia OK; w aplikacji produkcyjnej wynik pokazuje się w treści strony albo w konsoli, nigdy przez alert.
przestarzałe
Czytanie błędu ręcznie w konsoli
Błędy z przeglądarek wszystkich użytkowników zbierają automatycznie narzędzia do monitoringu (np. Sentry, Bugsnag) i zgłaszają zespołowi.
narzędzia
MDN: Web/API/Document/write (ostrzeżenie o czyszczeniu strony)