KWALIFIKACJA INF3 - CZERWIEC 2017

PYTANIE NR 28.
Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu Java Script, należy wykonać przed pętlą?
Ilustracja przedstawia fragment kodu JavaScript, który jest częścią pytania egzaminacyjnego z kwalifikacji zawodowej dla
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Aby kod w pętli działał przewidywalnie, zmienna używana do gromadzenia wyniku powinna mieć ustawioną wartość początkową.
Jeśli w pętli wykonywana jest np. konkatenacja (text += ...), to brak inicjalizacji może skutkować "undefined…" w wyniku lub błędem logiki. Dlatego przed pętlą należy zainicjować "text".

Pełne wyjaśnienie:

W typowych zadaniach JavaScript zmienna o nazwie text pełni rolę "akumulatora" wyniku: w każdej iteracji pętli dopisywany jest kolejny fragment (np. tekst, HTML, dane z tablicy). Żeby takie dopisywanie działało poprawnie, zmienna musi mieć określoną wartość początkową jeszcze przed wejściem do pętli.

Odpowiedź "Zainicjować zmienną text." jest poprawna, ponieważ operacje wykonywane w pętli często zakładają, że text jest już ustawione na sensowną wartość (np. pusty łańcuch ""). W przeciwnym razie wyrażenia typu text += ... mogą prowadzić do niepożądanego wyniku (np. dopisywanie do wartości undefined) albo do błędów w logice programu.

Pozostałe odpowiedzi nie gwarantują poprawnego wykonania takiego kodu:

  • "Zadeklarować zmienną i." – zmienna sterująca pętlą jest istotna, ale w praktyce bywa deklarowana w nagłówku pętli (np. for). Sama deklaracja i nie rozwiązuje problemu braku wartości startowej zmiennej akumulującej wynik.
  • "Sprawdzić rozmiar tabeli tab." – sprawdzanie rozmiaru kolekcji ma sens w algorytmice, ale nie jest ogólną czynnością "gwarantującą" poprawność. Wiele pętli działa poprawnie niezależnie od rozmiaru, a problem dotyczy zwykle inicjalizacji zmiennej wykorzystywanej w treści pętli.
  • "Sprawdzić czy text jest typu znakowego." – kontrola typu może być przydatna w walidacji danych, jednak w podstawowych przykładach wystarczy poprawnie ustawić wartość początkową. Co więcej, nawet jeśli typ będzie poprawny, brak inicjalizacji nadal może dać nieoczekiwany rezultat.

Wskazówka egzaminacyjna: gdy widzisz w pętli dopisywanie do zmiennej (konkatenacja, sumowanie, push do tablicy), najpierw sprawdź, czy ta zmienna ma ustawiony "stan początkowy" przed pętlą.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Inicjalizacja to nadanie zmiennej wartości początkowej w momencie tworzenia lub tuż po deklaracji, np. let text = "";. Dzięki temu późniejsze operacje (np. dopisywanie w pętli) nie startują od wartości undefined i dają przewidywalny wynik.
Deklaracja informuje silnik, że zmienna istnieje (np. let text;), a inicjalizacja przypisuje jej wartość (np. text = "";). W pętlach często potrzebujesz inicjalizacji, bo wykonujesz operacje na wartości, a nie tylko na "samej nazwie" zmiennej.
Bo text bywa używana jako zmienna akumulująca wynik, np. przy konkatenacji: text += fragment;. Jeśli nie ma wartości startowej, wynik może zawierać "undefined" albo program będzie działał niezgodnie z zamierzeniem. Inicjalizacja ustala poprawny punkt startu.
Nie. W JavaScript bardzo często deklaruje się ją bezpośrednio w nagłówku pętli, np. for (let i = 0; i < n; i++). Kluczowe jest, aby miała poprawny zakres (scope) i wartość początkową, ale nie oznacza to, że musi być deklarowana wcześniej osobno.
Ma sens, gdy dane wejściowe są niepewne (np. z formularza, API) i pętla zakłada konkretny typ. W zadaniach podstawowych częściej problemem jest brak wartości startowej niż typ. Najpierw upewnij się, że zmienna ma sensowną inicjalizację, a dopiero potem rozważ walidację typu.
Jeśli zmienna ma wartość undefined, to dopisywanie może dać nieoczekiwany wynik, np. powstanie łańcuch zaczynający się od "undefined…". Czasem błąd nie będzie widoczny jako wyjątek, ale wynik logicznie będzie błędny. Dlatego stosuje się start od "".
Najczęściej inicjalizuje się ją jako pusty łańcuch: let text = "";. Następnie w pętli dopisuje się fragmenty, np. text += element;. Alternatywnie można zbierać elementy w tablicy i na końcu użyć join, co bywa wydajniejsze.
Nie zawsze. Wiele pętli działa poprawnie dla rozmiaru 0 (po prostu wykona 0 iteracji). Sprawdzenie rozmiaru ma sens, gdy chcesz wykonać specjalną logikę dla pustych danych (np. komunikat "brak wyników"). Nie jest to jednak uniwersalny warunek poprawności kodu.
Najczęstsze to: brak inicjalizacji zmiennej akumulującej wynik, błędny warunek zakończenia pętli (o 1 za dużo/za mało iteracji), użycie złego operatora porównania oraz mylenie zakresu zmiennych (var vs let). Warto analizować, co jest modyfikowane w każdej iteracji.
Sprawdź, jakie zmienne są używane w treści pętli jako "wynik" (np. text, suma, licznik, tablica wynikowa). Jeśli są modyfikowane operatorem typu += lub push, zwykle wymagają wartości początkowej przed pętlą. To standardowy wzorzec w JS.
info

Statystycznie 58% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że dlatego przed pętlą należy zainicjować "text".

Źródła:

  • MDN Web Docs: "Grammar and types" (Variables, declarations, initialization) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Grammar_and_Types (dostęp: 2026-02-27)
  • MDN Web Docs: "for" statement https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/for (dostęp: 2026-02-27)
  • MDN Web Docs: "String" (typ i operacje na łańcuchach) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String (dostęp: 2026-02-27)

Materiały:

  • Dokumentacja MDN: deklarowanie i inicjalizacja zmiennych w JavaScript
  • Ćwiczenia z pętlami (for/while) i budowaniem wyników w zmiennej
  • Materiały o typach danych w JavaScript (string, number, undefined) i konwersjach

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego