Przejdź do głównej treści
  1. Strona główna
  2. Technik informatyk
  3. INF.03
  4. Pytanie

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe JavaScript

W wyniku wykonania przedstawionego poniżej kodu JavaScript zmienna x ma wartość:

<script>
    var x = 10;
    x++;
    console.log(x);
</script>

Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript:

<script>
var x = 10;
x++;
console.log(x);
</script>

Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu.

Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego.

Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.
W tym zadaniu łatwo się pomylić, bo miesza się tutaj kilka różnych sposobów wyprowadzania informacji w JavaScript i jednocześnie trzeba poprawnie zinterpretować działanie operatora inkrementacji. Kod wygląda niewinnie, ale kryje w sobie typowe pułapki: `var x = 10; x++; console.log(x);`. Kluczowe są dwa elementy: co robi `x++` oraz gdzie faktycznie pojawia się wynik działania programu.

Zaczynając od wartości zmiennej: zapis `var x = 10;` nadaje zmiennej `x` wartość początkową 10. Potem pojawia się operator `x++`, czyli inkrementacja postfiksowa. W JavaScript (podobnie jak w wielu językach z rodziny C) `++` zwiększa wartość zmiennej o 1. Po wykonaniu tej instrukcji wewnętrzny stan programu się zmienia: `x` nie ma już wartości 10, tylko 11. Błędne odpowiedzi zakładają, że `x` pozostaje równe 10, co wynika zazwyczaj z nieuwagi albo z mylenia operatora przypisania `=` z porównaniem, albo z całkowitego pominięcia działania `x++`.

Druga część problemu to miejsce wyświetlenia wyniku. Wiele osób odruchowo kojarzy JavaScript z `alert()` i oknami popup, albo z wypisywaniem czegoś bezpośrednio w HTML-u przez `document.write()`. Tymczasem w kodzie użyte jest `console.log(x);`. Ta funkcja nie pokazuje wyniku ani w oknie popup, ani w treści dokumentu, ani w głównym oknie przeglądarki. Zgodnie z praktyką programistyczną i dokumentacją przeglądarek, `console.log()` służy do logowania informacji w konsoli deweloperskiej (narzędziach programistycznych). To jest typowy mechanizm debugowania, niewidoczny dla zwykłego użytkownika strony.

Mylenie `console.log()` z wyświetlaniem na stronie wynika często z tego, że ktoś patrzy tylko na efekt w trakcie nauki i nie rozróżnia warstwy interfejsu użytkownika od warstwy debugowania. W prawidłowym rozumieniu: wartość zmiennej zmienia się z 10 na 11 dzięki `x++`, a wynik jest kierowany do konsoli, a nie do HTML ani do popupu. Dlatego wszystkie odpowiedzi, które mówią o wartości 10 lub o innym miejscu wyświetlania niż konsola przeglądarki, są po prostu niezgodne z faktycznym działaniem tego fragmentu kodu.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wyślemy tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.