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: Tworzenie stron WWW Programowanie webowe JavaScript

Aby prawidłowo udokumentować przedstawioną linię kodu języka JavaScript, należy po znakach // wpisać komentarz
document.getElementById("napis").innerHTML = Date();  //

Ta linia kodu odszukuje w dokumencie HTML element o identyfikatorze id = napis, a następnie ustawia jego zawartość na wynik działania funkcji Date(). W JavaScript zapis document.getElementById("napis") oznacza pobranie konkretnego elementu z drzewa DOM, czyli struktury strony widzianej przez przeglądarkę. Właściwość innerHTML odpowiada za zawartość HTML danego elementu, więc przypisanie do niej nowej wartości powoduje zmianę tego, co użytkownik zobaczy na stronie. Funkcja Date() wywołana bez słowa new zwraca tekstową reprezentację aktualnej daty i czasu, np. dzień tygodnia, miesiąc, godzinę i strefę czasową. Dlatego najlepszy komentarz to: wyświetlenie daty i czasu w znaczniku o id = napis. W praktyce taki kod można użyć np. w prostym panelu informacyjnym, zegarze strony albo komunikacie typu „ostatnie odświeżenie”. Moim zdaniem warto też pamiętać o dobrej praktyce: jeśli wstawiamy zwykły tekst, bez znaczników HTML, często bezpieczniej użyć textContent zamiast innerHTML, bo innerHTML interpretuje ewentualny kod HTML i przy danych od użytkownika może prowadzić do problemów bezpieczeństwa, np. XSS.
W tej instrukcji łatwo pomylić kilka pojęć, bo występują obok siebie DOM, właściwość innerHTML oraz funkcja Date(). Kod nie dotyczy żadnych „nieprawidłowych danych”, bo nie ma tu walidacji, sprawdzania formularza, obsługi błędów ani instrukcji warunkowej. Przeglądarka po prostu znajduje element o podanym identyfikatorze i podstawia do niego nową zawartość. Nie jest to też zmiana stylu atrybutu innerHTML. Styl w JavaScript modyfikuje się zwykle przez właściwość style, np. element.style.color = "red", albo przez dodawanie klas CSS przez classList. innerHTML nie jest stylem, tylko zawartością elementu, czyli tym, co znajduje się pomiędzy znacznikiem otwierającym i zamykającym. Błędne jest również założenie, że zostanie wyświetlony dosłowny tekst "Date()". Gdyby kod wyglądał tak: innerHTML = "Date()", wtedy faktycznie do elementu zostałby wpisany taki napis. Tutaj jednak Date() nie jest w cudzysłowie, więc JavaScript traktuje to jako wywołanie funkcji wbudowanej. Wynik funkcji, czyli aktualna data i czas w postaci tekstu, trafia do elementu o id = napis. Typowy błąd myślowy polega na patrzeniu tylko na prawą stronę przypisania i niedostrzeżeniu różnicy między tekstem w cudzysłowie a instrukcją wykonywaną przez interpreter. Z mojego doświadczenia to jedna z ważniejszych rzeczy w JS: cudzysłów oznacza literał tekstowy, a zapis z nawiasami po nazwie funkcji oznacza jej uruchomienie.

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.