W języku JavaScript zapisano fragment kodu.
<script> var x = 10; x++; console.log(x); </script>Po wykonaniu skryptu zmienna x
A. będzie równa 11 i zostanie wypisana w oknie popup.
B. będzie równa 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
C. będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej.
D. będzie równa 10 i zostanie wypisana w dokumencie HTML.
Pytanie z egzaminu CKE, styczeń 2017 (arkusz E.14-X-17.01).
W tym fragmencie zmienna x najpierw dostaje wartość 10, a potem wykonywana jest instrukcja x++. Operator inkrementacji ++ zwiększa wartość zmiennej liczbowej o 1, więc po tej instrukcji x ma wartość 11. Następnie console.log(x) przekazuje aktualną wartość zmiennej do konsoli przeglądarki, czyli miejsca dostępnego zwykle w narzędziach deweloperskich, np. po naciśnięciu F12. To nie jest okno popup ani treść automatycznie dopisana do dokumentu HTML. Moim zdaniem to jeden z tych drobnych szczegółów JavaScriptu, które warto dobrze zapamiętać, bo console.log jest codziennym narzędziem przy testowaniu skryptów. W praktyce programista używa go do sprawdzania wartości zmiennych, śledzenia przebiegu funkcji albo diagnozowania błędów. W nowoczesnym kodzie częściej spotkasz let zamiast var, bo let ma bardziej przewidywalny zakres blokowy. Sama zasada jednak zostaje taka sama: x++ zmienia wartość zmiennej, a console.log wypisuje ją w konsoli.
Niepoprawne odpowiedzi wynikają głównie z pomylenia kilku różnych mechanizmów wyświetlania informacji w JavaScript i w przeglądarce. Instrukcja x++ nie pozostawia wartości bez zmian. To operator inkrementacji, czyli zwiększenia wartości o jeden. Jeżeli zmienna miała 10, po wykonaniu tej instrukcji będzie miała 11. Czasem uczniowie kojarzą zapis x++ tylko jako coś, co dzieje się dopiero później, bo istnieje też różnica między postinkrementacją a preinkrementacją w wyrażeniach, ale tutaj instrukcja stoi osobno. Efekt jest prosty: wartość zmiennej zostaje zwiększona. Równie ważne jest rozróżnienie, gdzie trafia wynik. console.log nie wyświetla komunikatu w oknie popup. Do popupów służy na przykład alert, choć w dobrych aplikacjach używa się go raczej ostrożnie, bo przeszkadza użytkownikowi. console.log nie dopisuje też tekstu do dokumentu HTML i nie pokazuje go w głównym obszarze strony. Do tego potrzebna byłaby manipulacja DOM, na przykład ustawienie textContent jakiegoś elementu albo użycie document.write, którego swoją drogą raczej się unika w profesjonalnym kodzie. Konsola przeglądarki jest narzędziem diagnostycznym dla programisty, nie elementem interfejsu użytkownika. Z mojego doświadczenia najczęstszy błąd polega na tym, że każde wypisywanie wartości w JavaScript jest traktowane jak pokazanie czegoś na stronie, a to nie zawsze prawda.