Przejdź do głównej treści

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

Zawód: Technik informatyk, Technik programista

Kategorie: Programowanie webowe Algorytmy i podstawy informatyki JavaScript

Słowa kluczowe: JavaScript Tablice w JavaScript

Odwołaniem do imienia Agata, zawartego w przedstawionej tablicy JavaScript, jest

var Imiona = new Array('Anna','Joanna','Monika','Agata');
A. Imiona[3]
B. Imiona['Agata']
C. Imiona[Agata]
D. Imiona[4]

Pytanie z egzaminu CKE, czerwiec 2019 (arkusz E.14-X-19.06).

W JavaScript tablice są indeksowane od zera, czyli pierwszy element ma indeks 0, a nie 1. W podanej tablicy zmienna Imiona zawiera kolejno: Imiona[0] to 'Anna', Imiona[1] to 'Joanna', Imiona[2] to 'Monika', a Imiona[3] to 'Agata'. Dlatego odwołanie do imienia Agata zapisujemy jako Imiona[3]. To jest bardzo ważna zasada, bo pojawia się praktycznie wszędzie: przy pętlach for, metodach takich jak map, filter, forEach, przy obsłudze wyników z API albo danych pobranych z formularza. Z mojego doświadczenia wynika, że pomyłka o jeden indeks to jeden z najczęstszych błędów początkujących programistów. W nowoczesnym JavaScript częściej zapisuje się tablice jako const imiona = ['Anna', 'Joanna', 'Monika', 'Agata']; zamiast new Array(...), bo taki zapis jest krótszy i czytelniejszy. Sama zasada indeksowania jednak zostaje identyczna. Dobra praktyka to też używanie nazw zmiennych od małej litery, czyli raczej imiona niż Imiona, bo wielką literę zostawia się zwykle dla klas i konstruktorów.
W tym zadaniu najłatwiej pomylić kolejność liczenia elementów tablicy z takim zwykłym liczeniem po ludzku. W JavaScript tablica nie zaczyna się od indeksu 1, tylko od indeksu 0. To oznacza, że czwarty element tablicy ma indeks 3. Jeśli ktoś wybiera Imiona[4], to zakłada, że skoro Agata jest czwarta na liście, należy użyć liczby 4. W praktyce taki zapis odwołuje się już do piątego elementu, którego w tej tablicy nie ma, więc wynikiem będzie undefined. To klasyczny błąd typu off-by-one, bardzo częsty przy pętlach i przetwarzaniu list danych. Zapisy Imiona[Agata] oraz Imiona['Agata'] wynikają z innego nieporozumienia. Nawiasy kwadratowe w JavaScript służą do podania indeksu liczbowego albo nazwy właściwości obiektu, ale nie do automatycznego wyszukiwania wartości w tablicy. Imiona[Agata] próbowałoby użyć zmiennej o nazwie Agata; jeśli taka zmienna nie istnieje, pojawi się błąd ReferenceError. Z kolei Imiona['Agata'] oznacza odwołanie do właściwości o nazwie 'Agata', a nie szukanie tekstu 'Agata' wśród elementów tablicy. Gdy naprawdę chcemy znaleźć pozycję wartości w tablicy, używa się np. imiona.indexOf('Agata') albo imiona.includes('Agata'). Moim zdaniem warto to dobrze zapamiętać, bo rozróżnienie między indeksem, wartością i nazwą właściwości bardzo pomaga później przy obiektach, JSON-ie i danych z backendu.

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. Wysłane zostaną 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.