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

Który ze sposobów wypisania tekstu nie jest zdefiniowany w języku JavaScript?

A. Metoda document.write()
B. Funkcja MessageBox()
C. Własność innerHTML
D. Metoda window.alert()

Pytanie z egzaminu CKE, czerwiec 2017 (arkusz E.14-X-17.06).

Funkcja MessageBox() nie jest standardowym sposobem wypisywania tekstu w JavaScript działającym w przeglądarce. Taka nazwa kojarzy się raczej z innymi środowiskami, np. z Visual Basic, VBA albo niektórymi bibliotekami desktopowymi. W czystym JavaScript, jeżeli wpiszesz MessageBox('Tekst'), przeglądarka najczęściej zgłosi błąd typu ReferenceError, bo taka funkcja po prostu nie istnieje, dopóki sam jej nie zdefiniujesz albo nie dołączysz biblioteki, która ją udostępnia. Pozostałe sposoby są typowe dla programowania stron WWW: innerHTML pozwala zmienić zawartość elementu HTML, window.alert() pokazuje proste okno komunikatu, a document.write() wypisuje treść do dokumentu, choć dziś używa się go raczej ostrożnie. Moim zdaniem najważniejsze jest tu rozróżnienie między standardowymi mechanizmami przeglądarki a nazwami funkcji znanymi z innych technologii. W praktyce do dynamicznej zmiany treści strony lepiej używać DOM, np. textContent lub innerHTML, przy czym innerHTML wymaga uwagi ze względów bezpieczeństwa, bo może wstawiać kod HTML. Dobra praktyka branżowa mówi: do zwykłego tekstu wybieraj textContent, do komunikatów testowych możesz użyć alert(), a document.write() traktuj bardziej jako historyczny mechanizm, nie nowoczesne rozwiązanie do aplikacji webowych.
W tym pytaniu łatwo pomylić pojęcie JavaScriptu jako języka z całym środowiskiem przeglądarki. W praktyce szkolnej i webowej do sposobów wypisywania albo pokazywania tekstu zalicza się między innymi zmianę własności innerHTML, użycie metody window.alert() oraz metodę document.write(). Technicznie rzecz biorąc innerHTML i document.write() należą do API przeglądarki, czyli do DOM i obiektu document, a nie do samego rdzenia ECMAScript. Mimo to są normalnie używane z poziomu JavaScriptu na stronie WWW, więc nie są odpowiedzią na pytanie o element niezdefiniowany w takim kontekście. innerHTML służy do wstawiania zawartości HTML do elementu, np. do aktualizacji akapitu po kliknięciu przycisku. Trzeba jednak uważać, bo wstawianie niesprawdzonego tekstu przez innerHTML może prowadzić do podatności XSS. window.alert() to wbudowany mechanizm okna przeglądarki, dobry raczej do prostego testowania lub bardzo prostych komunikatów, ale w profesjonalnym interfejsie zwykle zastępuje się go własnym modalem. document.write() też istnieje, lecz jest dość przestarzały i potrafi nadpisać dokument, jeśli zostanie użyty po załadowaniu strony. Błąd myślowy często polega na tym, że nazwa MessageBox brzmi bardzo wiarygodnie, bo faktycznie występuje w innych technologiach. Jednak w standardowym JavaScripcie przeglądarkowym nie ma globalnej funkcji MessageBox(). Jeśli ma działać, trzeba ją samodzielnie napisać albo korzystać z biblioteki, która taką nazwę wprowadza. Dlatego poprawną odpowiedzią jest właśnie MessageBox(), a nie mechanizmy związane z DOM i obiektem window.

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.