Wyniki egzaminu

Informacje o egzaminie:
  • Zawód: Technik informatyk
  • Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych
  • Data rozpoczęcia: 9 grudnia 2025 11:35
  • Data zakończenia: 9 grudnia 2025 11:48

Egzamin zdany!

Wynik: 23/40 punktów (57,5%)

Wymagane minimum: 20 punktów (50%)

Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

document.getElementById("napis").innerHTML = Date); // Aby poprawnie skomentować podaną linijkę kodu w języku JavaScript, należy dodać komentarz po znakach //

A. zmiana właściwości atrybutu innerHTML
B. wyświetlenie ciągu "Date()" w znaczniku o id = napis
C. niepoprawne informacje
D. wyświetlenie daty oraz czasu w znaczniku o id = napis
Wybór odpowiedzi, które nie są poprawne, opiera się na nieścisłym zrozumieniu działania funkcji i użycia atrybutu 'innerHTML'. Pierwsza z niepoprawnych odpowiedzi sugeruje, że przedstawione dane są nieprawidłowe, co jest mylne. W rzeczywistości, kod nie jest błędny w sensie syntaktycznym, ale jego logika w kontekście wyświetlania aktualnej daty i czasu wymaga poprawy. Druga odpowiedź, odnosząca się do zmiany stylu atrybutu 'innerHTML', jest również błędna, ponieważ atrybut 'innerHTML' nie służy do zmiany stylu elementu. W rzeczywistości, 'innerHTML' jest używany do wstawiania lub modyfikacji zawartości HTML danego elementu, a nie jego stylizacji. Stylizacja powinna być realizowana poprzez CSS lub Javascript wykorzystujący inne metody, takie jak 'style' lub 'classList'. Trzecia niepoprawna odpowiedź sugeruje, że kod wyświetli tekst 'Date()', co jest całkowicie błędne. Funkcja bez nawiasów nie zwraca wyników, a jedynie odnosi się do konstruktora obiektów daty. W związku z tym, wynik będzie niepoprawny i nie przyczyni się do wyświetlenia aktualnej daty i czasu na stronie. W kontekście programowania w JavaScript, kluczowe jest zrozumienie różnicy między wywołaniem funkcji a odniesieniem się do funkcji jako obiektu, co jest fundamentalne dla efektywnej manipulacji DOM.

Pytanie 2

Aby w JavaScript wykonać wymienione kroki, należy w znaczniku <script> umieścić kod

1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
    następnie po zatwierdzeniu

2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
    wartość pobrana z okna "Kwalifikacja: ..."
A. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
B. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
C. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A);
D. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A);
Wybrana odpowiedź nie jest prawidłowa. W JavaScript, funkcja 'alert()' jest używana do wyświetlania okienka z komunikatem, ale nie pozwala na wprowadzenie przez użytkownika żadnej wartości, w przeciwieństwie do funkcji 'prompt()'. Operator '<<' nie jest odpowiedni w tym kontekście, ponieważ jest to operator przesunięcia bitowego, a nie służy do przypisywania wartości do zmiennej. W niektórych niepoprawnych odpowiedziach, próbowano połączyć łańcuchy znaków (stringi) za pomocą kropki ('.'), co jest niepoprawne w JavaScript. Operator do łączenia łańcuchów znaków w tym języku to '+'. Kropka jest używana do dostępu do właściwości obiektów. Pamiętaj, że zrozumienie różnicy między różnymi funkcjami interaktywnymi, takimi jak 'alert()', 'prompt()' i 'confirm()', oraz kiedy ich używać, jest kluczowe do efektywnego tworzenia interaktywnych stron internetowych.

Pytanie 3

Fragment kodu napisany w języku JavaScript, który realizuje sumowanie dwóch liczb, wygląda następująco (zobacz ramka): Aby operacja dodawania odbywała się po naciśnięciu przycisku zatytułowanego "dodaj", należy w miejsce wykropkowane wprowadzić

Ilustracja do pytania
A. <button onclick="return obliczj()">dodaj</button>
B. <button onselect="return dodaj()">dodaj</button>
C. <button onselect="return dodaj()">oblicz</button>
D. <button onclick="return dodaj()">dodaj</button>
Odpowiedź jest prawidłowa, ponieważ w języku JavaScript zdarzenie onclick jest standardowym sposobem uruchamiania funkcji w odpowiedzi na kliknięcie przycisku. W tym przypadku funkcja dodaj() zostanie wywołana, gdy użytkownik kliknie przycisk z napisem "dodaj". Jest to zgodne z powszechnymi praktykami w tworzeniu interfejsów użytkownika dla aplikacji webowych, gdzie zdarzenia są przypisywane do elementów HTML za pomocą atrybutów takich jak onclick czy onsubmit. Takie podejście pozwala na bezpośrednią interakcję użytkownika z elementami strony, co jest kluczowe dla dynamicznych aplikacji internetowych. Przy tworzeniu stron internetowych ważne jest, aby zdarzenia były jednoznacznie przypisane do odpowiednich funkcji, co ułatwia zarządzanie logiką aplikacji. Dodatkowo takie rozwiązanie zwiększa czytelność kodu i ułatwia jego dalsze utrzymanie i rozwój. W przypadku bardziej skomplikowanych projektów można również rozważyć oddzielanie logiki JavaScript od struktury HTML, używając zewnętrznych plików skryptów i bibliotek, takich jak jQuery czy React, co sprzyja lepszej organizacji kodu.

Pytanie 4

W JavaScript zapis a++; można przedstawić w inny sposób jako

A. a = a + 1
B. 1 += a
C. a = a & 1
D. a << 1
Odpowiedź 'a = a + 1;' jest poprawna, ponieważ dokładnie odzwierciedla działanie operatora inkrementacji 'a++;'. Operator '++' w JavaScript zwiększa wartość zmiennej o 1. W przypadku użycia 'a = a + 1;', operacja ta jest explicite zapisana jako przypisanie aktualnej wartości 'a' powiększonej o 1. Taki zapis jest często stosowany w sytuacjach, gdy chcemy lepiej zrozumieć, co się dzieje w kodzie, szczególnie dla początkujących programistów. Przykładowo, jeśli mamy zmienną, która przechowuje liczbę, możemy użyć 'a = a + 1;' w pętli, aby zliczać ilość iteracji. Warto zauważyć, że użycie operatora '++' jest bardziej zwięzłe i często preferowane w profesjonalnym kodzie, jednak zrozumienie, jak działa to na poziomie podstawowym, jest kluczowe. Dobrą praktyką jest dbałość o przejrzystość kodu, zwłaszcza w zespołach, gdzie różne osoby mogą pracować nad tym samym projektem.

Pytanie 5

Jaką wartość zwróci poniższa instrukcja w JavaScript?

document.write(5==='5');
A. true
B. false
C. 1
D. 0
W przypadku użycia operatora porównania w JavaScript ważne jest zrozumienie różnic między operatorem podwójnego równości == a potrójnego równości ===. Operator == porównuje wartości po niejawnej konwersji typów danych co prowadzi do błędów gdy nie są one jednoznaczne. Przykładowo liczba 5 porównana z ciągiem '5' używając == może dać wartość true ponieważ konwertuje typy do jednego wspólnego formatu przed porównaniem. Jednak takie podejście jest ryzykowne i niezalecane w profesjonalnym programowaniu gdyż nie zapewnia pełnej zgodności typów. Operator === przeciwnie sprawdza zarówno typ danych jak i wartość co eliminuje problemy z nieoczekiwanymi konwersjami. W przedstawionym przykładzie porównanie liczby 5 z ciągiem '5' za pomocą === zwraca false ponieważ typy danych nie są zgodne. Niepoprawne zrozumienie tego mechanizmu może prowadzić do błędnych wniosków takich jak wyświetlenie wartości true lub 1 co jest nieprawidłowe. Zrozumienie różnic w działaniu tych operatorów jest kluczowe dla każdego programisty JavaScript aby unikać typowych błędów związanych z niejawnością konwersji typów i zapewniać większą przewidywalność i niezawodność kodu produkcyjnego. Takie podejście jest zgodne z dobrymi praktykami w branży co przyczynia się do poprawy jakości kodu i jego długoterminowej konserwacji. Użycie === jest rekomendowane w celu zapewnienia pełnej zgodności typów i wartości co jest kluczowe w profesjonalnym środowisku programowania webowego. Przyzwyczajenie się do stosowania potrójnego równości zmniejsza ryzyko błędów logicznych i wspiera dobre praktyki programistyczne.

Pytanie 6

W języku JavaScript, deklaracja: ```var x=true;``` sprawia, że zmienna x ma typ

A. numeryczny
B. logiczy
C. enumeracyjny
D. łańcuch znaków
Odpowiedzi, które dotyczą typów danych jak ciągi znaków, liczby czy wyliczeniowe, są tutaj nietrafione. Na początek warto wspomnieć, że ciąg znaków w JavaScript to po prostu tekst, np. 'hello' lub '123'. To zupełnie co innego niż typ logiczny. Zmienna z wartością true to nie tekst, więc nie da się jej traktować jako ciągu znaków. Jeśli chodzi o typ liczbowy, to on dotyczy wartości takich jak 1, 2, 3 czy 3.14. Często można się pomylić, gdy wartości logiczne są brane pod uwagę w kontekście arytmetyki, co prowadzi do błędnych wniosków. Typ wyliczeniowy jest zazwyczaj używany w językach, które mają enumeracje, a w czystym JavaScript tego nie ma. Typ logiczny ma swoje unikalne zastosowania, szczególnie w tworzeniu warunków i decyzyjności w kodzie. Jak się nie zrozumie tych różnych typów, to można łatwo wpaść w pułapki logiczne, co jest dość powszechnym problemem, zwłaszcza u początkujących programistów. Dlatego ważne jest, by przy nauce programowania widzieć, jak różne typy danych mogą wpływać na kod i unikać uproszczeń, które mogą dać błędne rezultaty.

Pytanie 7

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. serwera WWW
B. serwera MySQL
C. przeglądarki internetowej
D. debuggera JavaScript
Aby uruchomić skrypt JavaScript, niezbędne jest posiadanie przeglądarki internetowej, która obsługuje JavaScript. Przeglądarki takie jak Chrome, Firefox, Safari czy Edge zawierają silniki JavaScript, które interpretują i wykonują skrypty na stronach internetowych. Przykładowo, gdy użytkownik wchodzi na stronę internetową, która wykorzystuje JavaScript do dynamicznego ładowania treści lub interakcji z użytkownikiem, przeglądarka przetwarza skrypty w czasie rzeczywistym, co wpływa na doświadczenie użytkownika. Przeglądarki regularnie aktualizują swoje silniki, co przyczynia się do poprawy wydajności i bezpieczeństwa. Dodatkowo, korzystanie z narzędzi deweloperskich w przeglądarkach, takich jak konsola JavaScript, umożliwia programistom testowanie i debugowanie skryptów w łatwy sposób. W kontekście standardów webowych, JavaScript jest kluczowym elementem technologii front-end, współpracując z HTML i CSS, aby zapewnić interaktywność i responsywność stron internetowych. Warto również zauważyć, że niektóre frameworki, takie jak React czy Angular, również opierają się na JavaScript, co podkreśla jego znaczenie w nowoczesnym web developmencie.

Pytanie 8

Jakie zadanie wykonuje funkcja napisana w JavaScript?

function fun1(a,b)
{
    if ( a % 2 != 0 ) a++;
    for(n=a; n<=b; n+=2)
        document.write(n);
}
A. sprawdzenie, czy liczba a jest liczbą nieparzystą; jeśli tak, to jej wypisanie
B. wypisanie liczb parzystych w przedziale od a do b
C. wypisanie wszystkich liczb w zakresie od a do b
D. zwrócenie parzystych wartości liczb od a do b
Funkcja fun1 napisana w języku JavaScript ma za zadanie wypisanie liczb parzystych z przedziału od a do b. Na początku funkcja sprawdza, czy liczba a jest nieparzysta, wykorzystując operator modulo %. Jeśli a jest nieparzysta, zwiększana jest o jeden, aby stać się liczbą parzystą. Następnie pętla for iteruje od tej nowej wartości a do b, zwiększając a o 2 w każdej iteracji, co zapewnia, że wszystkie generowane liczby są parzyste. Wykorzystanie document.write(n) w każdej iteracji powoduje wypisanie bieżącej liczby. Taki sposób iteracji jest efektywny w kontekście wydajności, ponieważ omija nieparzyste liczby bez potrzeby sprawdzania ich w każdej iteracji. Ta technika jest powszechnie stosowana w programowaniu, gdy chcemy iterować tylko po określonym typie liczb, w tym przypadku parzystych. Dbałość o sprawność kodu i unikanie zbędnych operacji to kluczowe aspekty profesjonalnego programowania, które wpływają na szybkość działania i zasobożerność aplikacji. Implementacja ta jest zgodna z dobrymi praktykami, gdyż unika zbędnych operacji i wykonuje zadanie w sposób możliwie najbardziej efektywny.

Pytanie 9

W skrypcie JavaScript użyto metody DOM getElementsByClassName('akapit'). Ta metoda odniesie się do akapitu

A. <p id="akapit">akapit2</p>
B. <p>akapit</p>
C. <p href="/akapit">akapit3</p>
D. <p class="akapit">akapit4</p>
Metoda DOM getElementsByClassName jest jedną z najważniejszych funkcji w JavaScript, która pozwala na selekcję elementów na stronie internetowej na podstawie ich klas CSS. W tym przypadku, odpowiedź <p class="akapit">akapit4</p> jest poprawna, ponieważ element ten ma przypisaną klasę "akapit", co czyni go bezpośrednim kandydatem do selekcji przez metodę getElementsByClassName('akapit'). Metoda ta zwraca kolekcję elementów (HTMLCollection), które mają podaną klasę, a następnie można z nimi pracować w kodzie JavaScript. Na przykład, możemy zmieniać ich style, zawartość lub dodawać zdarzenia. Dobrą praktyką jest stosowanie klas do stylizacji oraz manipulacji DOM, co pozwala na lepszą organizację kodu i zwiększa jego czytelność. Pamiętaj, że klasy są bardziej uniwersalne i elastyczne niż identyfikatory (ID), które powinny być unikalne na stronie. W przypadku konieczności stosowania metod do manipulacji elementami DOM, warto znać również inne metody, takie jak querySelector i querySelectorAll, które oferują bardziej zaawansowane opcje selekcji, umożliwiające wykorzystanie kombinacji klas, identyfikatorów i innych atrybutów.

Pytanie 10

W skrypcie JavaScript operatory: ||, && są klasyfikowane jako operatorzy

A. bitowe
B. przypisania
C. arytmetyczne
D. logicznymi
Operatory || (OR logiczny) oraz && (AND logiczny) w języku JavaScript należą do grupy operatorów logicznych. Używają ich programiści do prowadzenia operacji na wartościach boolowskich (true/false), co jest kluczowe w tworzeniu warunków w instrukcjach warunkowych i pętlach. Operator && zwraca true, jeśli obie jego operandy są prawdziwe, natomiast operator || zwraca true, gdy przynajmniej jedna z operand jest prawdziwa. Przykładem praktycznego zastosowania operatora && może być sprawdzanie, czy użytkownik jest zalogowany i ma odpowiednie uprawnienia do wykonania danej operacji. Z kolei operator || może być użyty do wyświetlenia komunikatu, jeśli użytkownik nie podał danych, bądź podał niewłaściwe wartości. Dobrze jest stosować te operatory w kontekście logiki programowania, co pozwala na tworzenie bardziej złożonych, ale jednocześnie czytelnych i efektywnych warunków. Warto również pamiętać, aby w kodzie unikać zbyt skomplikowanych warunków, co może prowadzić do trudności w utrzymaniu kodu oraz zwiększać ryzyko błędów.

Pytanie 11

Aby włączyć zewnętrzny skrypt JavaScript zatytułowany skrypt.js, należy umieścić w kodzie HTML

A. <link rel="script" href="skrypt.js" />
B. <link rel="JavaScript" type="js" href="skrypt.js" />
C. <script> skrypt.js </script>
D. <script src="skrypt.js"></script>
Odpowiedź <script src="skrypt.js"></script> jest poprawna, ponieważ jest to standardowy sposób dołączania zewnętrznych plików JavaScript do dokumentu HTML. Element <script> informuje przeglądarkę, że zawiera on kod JavaScript, a atrybut src wskazuje na lokalizację pliku, który ma zostać załadowany. W praktyce, umieszczanie skryptów w tagu <script> z atrybutem src umożliwia oddzielenie logiki skryptowej od struktury HTML, co jest zgodne z zasadami programowania modularnego i ułatwia zarządzanie kodem. Taka struktura pozwala na łatwe ponowne wykorzystanie skryptów w różnych projektach bez konieczności kopiowania kodu. Ponadto, dobrym zwyczajem jest umieszczanie skryptów na końcu sekcji <body>, co pozwala na załadowanie całej zawartości HTML przed wykonaniem skryptu, co przekłada się na lepszą wydajność i doświadczenia użytkownika.

Pytanie 12

Jakie zdarzenie umożliwia uruchomienie kodu w języku JavaScript w momencie przesyłania formularza HTML oraz kontrolowanie tego, czy ma on zostać wysłany?

A. onClick
B. onSubmit
C. onChange
D. onEnter
Odpowiedź onSubmit jest rzeczywiście na miejscu, bo to zdarzenie uruchamia się, gdy wysyłasz formularz HTML. Dzięki temu można wprowadzić kod JavaScript, który pozwoli na przeprowadzenie dodatkowych walidacji przed wysłaniem danych na serwer. To super sprawa, bo jeśli coś jest nie tak, to można zablokować wysłanie formularza. Można też zrobić inne rzeczy, na przykład zapisać dane lokalnie albo pokazać jakiś komunikat użytkownikowi. Weźmy na przykład formularz logowania – sprawdzamy, czy hasło i login są odpowiednie przed wysłaniem. Takie podejście to norma w branży, bo walidacja danych po stronie klienta naprawdę poprawia doświadczenia użytkownika i zmniejsza obciążenie serwera. Fajnie jest też korzystać z metod asynchronicznych, jak AJAX, żeby przetwarzać formularze bez potrzeby przeładowywania strony, co naprawdę dodaje interaktywności aplikacjom webowym.

Pytanie 13

Język JavaScript wspiera

A. wysyłanie ciastek z identycznymi informacjami do wielu użytkowników strony
B. abstrakcyjne klasy
C. funkcje wirtualne
D. obiekty DOM
Obiekty DOM (Document Object Model) są fundamentalnym aspektem języka JavaScript, umożliwiającym interakcję z dokumentami HTML i XML. Dzięki DOM, programiści mogą dynamicznie manipulować strukturą dokumentu, co pozwala na tworzenie interaktywnych aplikacji webowych. Na przykład, za pomocą JavaScript można zmieniać tekst w elementach HTML, dodawać lub usuwać elementy, a także reagować na zdarzenia użytkownika, takie jak kliknięcia czy ruchy myszy. Przykładowy kod: document.getElementById('example').innerHTML = 'Nowa zawartość'; ilustruje, jak można zmienić zawartość elementu z identyfikatorem 'example'. Zrozumienie i umiejętność pracy z DOM jest kluczowe w nowoczesnym tworzeniu stron internetowych oraz aplikacji w JavaScript, co wpisuje się w najlepsze praktyki rozwoju oprogramowania, takie jak separacja logiki od prezentacji i programowanie obiektowe.

Pytanie 14

Co można powiedzieć o wyświetlonym przez witrynę tekście "test kolorów"?

<p id="p1" style="color:blue;">test kolorów</p>
<button type="button"
  onclick="document.getElementById('p1').style.color='red'">
  test</button>
A. Wciskanie przycisku test sprawia, że kolor tekstu jest na przemian niebieski i czerwony.
B. Po wciśnięciu przycisku test kolor tekstu jest niebieski.
C. Zaraz po załadowaniu witryny kolor tekstu jest czerwony.
D. Po wciśnięciu przycisku test kolor tekstu jest czerwony.
Zauważyłem, że w kodzie HTML kolor tekstu na początku jest niebieski. Jest to ustawione w atrybucie style dla elementu o id='p1'. Po kliknięciu w przycisk, uruchamia się funkcja JavaScript, która zmienia kolor na czerwony. Ta funkcja jest przypisana w atrybucie onclick. Takie podejście to świetny sposób na interakcję użytkownika z witryną, korzystając ze skryptów JavaScript. Myślę, że to bardzo dobry przykład, który pokazuje, jak można robić interaktywne elementy na stronach. Wiedza na ten temat może pomóc lepiej zrozumieć, jak działają strony internetowe i co można zrobić z JavaScriptem.

Pytanie 15

Aby uruchomić kod JavaScript w przeglądarce, potrzebne jest

A. debugowanie
B. kompilowanie
C. interpretowanie
D. przetwarzanie na kod maszynowy
Wykonanie kodu JavaScript w przeglądarce wymaga jego interpretowania, co oznacza, że kod jest analizowany i wykonywany linia po linii bezpośrednio przez silnik JavaScript wbudowany w przeglądarkę, taki jak V8 w Google Chrome czy SpiderMonkey w Firefoxie. W odróżnieniu od kompilacji, gdzie cały kod źródłowy jest przekształcany w kod maszynowy przed jego uruchomieniem, interpretacja pozwala na bardziej elastyczne i interaktywne programowanie. Dzięki temu programiści mogą dynamicznie modyfikować i testować skrypty bez potrzeby każdorazowego kompilowania. Przykładem zastosowania jest wbudowana konsola w przeglądarkach, gdzie można na bieżąco wprowadzać i testować fragmenty kodu JavaScript. Interpretacja jest zgodna z zasadami dobrych praktyk programowania webowego, takim jak szybka iteracja i prototypowanie, co czyni ją kluczowym elementem w tworzeniu aplikacji internetowych. Dodatkowo, dzięki interpretacji, JavaScript może być łatwo integrowany z HTML i CSS, co przyczynia się do rozwoju bogatych interfejsów użytkownika w aplikacjach webowych.

Pytanie 16

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
B. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
C. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
D. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
Odpowiedź druga jest poprawna, ponieważ dokładnie opisuje wzorzec walidacji użyty w kodzie JavaScript. Wyrażenie regularne określa, że pole nazwa może zaczynać się od dowolnej liczby cyfr od 1 do 9, co oznacza, że cyfra 0 jest wykluczona, co jest zgodne z opisem. Następnie musi wystąpić jedna duża litera, co jest również zgodne z wymogiem wzorca. Kolejnym wymogiem jest wystąpienie co najmniej dwóch małych liter, co także jest zgodne z przedstawionym wzorcem. Poprawna i precyzyjna dokumentacja kodu ma kluczowe znaczenie dla utrzymania oraz dalszego rozwoju oprogramowania. Dobrze udokumentowane wyrażenia regularne pozwalają na lepsze zrozumienie logiki walidacji i ułatwiają pracę zespołom deweloperskim. Warto również zauważyć, że stosowanie wyrażeń regularnych w walidacji danych wejściowych jest standardową praktyką w branży IT, szczególnie w aplikacjach webowych, gdzie dane użytkowników wymagają szczegółowego sprawdzania pod kątem poprawności i bezpieczeństwa. Dzięki temu można uniknąć potencjalnych błędów i ataków wynikających z niewłaściwie przetworzonych danych.

Pytanie 17

W JavaScript, wynik operacji przyjmuje wartość NaN, gdy skrypt usiłuje przeprowadzić

A. funkcję, która sprawdza długość stringa, a zawartość zmiennej była liczba
B. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
C. operację arytmetyczną, a zawartość zmiennej była tekstem
D. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
W pytaniu zwrócono uwagę na różne operacje, które mogą prowadzić do uzyskania wartości NaN w JavaScript. Jednak nie wszystkie wymienione przypadki są związane z generowaniem tej wartości. Przykładowo, korzystanie z parseFloat zamiast parseInt przy konwersji zmiennych liczbowych nie ma wpływu na wynik operacji arytmetycznych i nie prowadzi do NaN. Funkcja parseFloat konwertuje ciąg znaków na liczbę zmiennoprzecinkową, podczas gdy parseInt konwertuje na liczbę całkowitą. W obu przypadkach, jeśli ciąg jest odpowiedni, wynik zawsze będzie liczbą, a nie NaN. Kolejną sytuacją jest sprawdzanie długości napisu; jeśli zmienna jest liczbą, operacje związane z długością nie wpływają na typ danych, więc nie powinny generować NaN. Trzeci przypadek, czyli działanie arytmetyczne na dwóch zmiennych liczbowych dodatnich, również nie prowadzi do uzyskania NaN, ponieważ operacje są poprawnie wykonywane. Zrozumienie tych koncepcji jest niezwykle ważne, aby unikać typowych błędów i nieporozumień, które mogą wystąpić w kodzie. Kluczowym zagadnieniem w programowaniu w JavaScript jest zarządzanie typami danych, a ich niewłaściwe użycie może prowadzić do trudnych do zdiagnozowania błędów w aplikacjach.

Pytanie 18

Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu Java Script, należy wykonać przed pętlą?

var text;
for ( var i = 0; i < tab.length; i++ ) {
  text += tab[i] + "<br>";
}
A. Sprawdzić rozmiar tabeli tab.
B. Zainicjować zmienną text.
C. Zadeklarować zmienną i.
D. Sprawdzić czy text j est typu znakowego.
Wygląda na to, że odpowiedź nie była poprawna. Pozostałe opcje, tj. 'Sprawdzić czy text j est typu znakowego', 'Zadeklarować zmienną i', 'Sprawdzić rozmiar tabeli tab', nie są bezpośrednio związane z poprawnym wykonaniem kodu przedstawionego w pętli. Chociaż wszystkie te działania mogą być istotne w różnych kontekstach programowania, w tym przypadku żadne z nich nie gwarantuje poprawnego wykonania kodu. Deklaracja zmiennej 'i' czy sprawdzenie rozmiaru tabeli 'tab' jest często stosowane w pętlach, jednak nie gwarantują one poprawnego działania kodu w pętli bez odpowiedniego zainicjowania zmiennej 'text'. Zrozumienie tego aspektu jest kluczowe dla efektywnego programowania, zarówno w JavaScript, jak i w innych językach programowania.

Pytanie 19

Na podstawie przedstawionego kodu w języku JavaScript można powiedzieć, że alert nie zostanie wyświetlony, ponieważ

var x = 10;
switch(x) {
    case "10": alert("Test instrukcji switch");
}
A. Nie zastosowano instrukcji break.
B. W instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x.
C. Nie zastosowano wyrażenia default.
D. Wartość zmiennej x nie została zdefiniowana przed instrukcją switch.
Super, twoja odpowiedź jest prawidłowa! Wybierając odpowiedź 'w instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x', zrozumiałeś istotny punkt w porównywaniu wartości w JavaScript. W przeciwieństwie do wielu innych języków, porównania w JavaScript są typowo 'strict comparison'. Oznacza to, że pod uwagę brane są zarówno wartość, jak i typ danych. W naszym przypadku, zmienna x jest liczbą 10, podczas gdy w instrukcji case porównywana jest z ciągiem znaków '10'. Mimo, że obie reprezentują tę samą wartość, są różnymi typami danych. Dlatego też warunek nie jest spełniony i alert nie zostanie wyświetlony. To jest bardzo ważne do zapamiętania podczas pracy z JavaScript, ponieważ może prowadzić do nieoczekiwanych wyników. Pamiętaj zawsze o typach danych podczas korzystania z instrukcji switch i case w JavaScript.

Pytanie 20

Przypisanie w JavaScript, zapisane jako var x=true;, prowadzi do tego, że zmienna x przyjmuje typ

A. logicznym
B. liczbowym
C. wyliczeniowym
D. ciągu znaków
Deklaracja zmiennej w języku JavaScript, przy użyciu słowa kluczowego 'var', tworzy zmienną x, której typ jest logiczny. Typ logiczny (boolean) w JavaScript ma dwa możliwe wartości: true oraz false. Jest to podstawowy typ danych, który jest szeroko używany w programowaniu do reprezentacji wartości prawda/fałsz, co jest niezbędne przy podejmowaniu decyzji, takich jak warunki w instrukcjach if, pętlach czy operacjach logicznych. Dlatego też, przypisanie wartości true do zmiennej x oznacza, że x jest typu boolean, co można zweryfikować za pomocą operatora typeof. W praktycznych zastosowaniach, typ logiczny jest niezwykle ważny, na przykład w formularzach internetowych, gdzie wartości typu boolean mogą określać, czy dany warunek został spełniony. W odniesieniu do standardów, typ boolean jest zdefiniowany w ECMAScript, co czyni go fundamentalnym elementem w programowaniu w tym języku. Zrozumienie typów danych, a szczególnie typu logicznego, jest kluczowe dla efektywnego programowania i optymalizacji kodu.

Pytanie 21

Podana linia kodu została napisana w języku?

document.getElementById("paragraf1").innerHTML = wynik;
A. JavaScript
B. C#
C. Python
D. PHP
Odpowiedź JavaScript jest prawidłowa, ponieważ linia kodu, którą przedstawiono, wykorzystuje standardową metodę DOM (Document Object Model) do dynamicznej manipulacji zawartością HTML. W kodzie 'document.getElementById("paragraf1").innerHTML = wynik;' funkcja 'getElementById' służy do odnajdywania elementu HTML o identyfikatorze 'paragraf1'. Następnie, przypisanie wartości zmiennej 'wynik' do 'innerHTML' tego elementu zmienia jego zawartość tekstową. JavaScript jest głównym językiem do tworzenia interaktywnych stron internetowych i umożliwia programistom tworzenie dynamicznych funkcjonalności. Przykład praktycznego użycia to sytuacja, gdy na stronie internetowej chcemy wyświetlić obliczone wyniki w czasie rzeczywistym, np. w aplikacjach kalkulatorów online. W kontekście standardów branżowych, używanie DOM do manipulacji elementami HTML w JavaScript jest uważane za dobrą praktykę, a jego znajomość jest niezbędna dla każdego web developera.

Pytanie 22

Na stronie www znajduje się formularz, do którego należy stworzyć następujące funkcje: walidacja: w czasie wypełniania formularza na bieżąco kontrolowana jest poprawność danych, przesyłanie danych: po zrealizowaniu formularza i jego zatwierdzeniu, dane są przekazywane do bazy danych na serwerze. Aby zrealizować tę funkcjonalność w jak najprostszy sposób, należy zapisać

A. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
B. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
C. walidację oraz przesyłanie danych w języku PHP
D. walidację oraz przesyłanie danych w języku JavaScript
Walidacja danych w formularzu powinna być przeprowadzana po stronie klienta, co oznacza, że najwłaściwszym rozwiązaniem jest wykorzystanie języka JavaScript. Taki sposób umożliwia natychmiastowe informowanie użytkownika o błędach, co znacząco poprawia doświadczenia użytkowników. Przykłady zastosowania obejmują sprawdzanie, czy pola są puste, czy wprowadzony adres e-mail ma odpowiedni format oraz czy hasło spełnia określone kryteria. Po zatwierdzeniu formularza, dane powinny być przesyłane do serwera, gdzie można je obsłużyć i zapisać w bazie danych. W tym kontekście wykorzystanie języka PHP jest idealnym rozwiązaniem, ponieważ PHP jest popularnym językiem skryptowym do obsługi backendu i pracy z bazami danych. Serwerowa walidacja danych jest również konieczna dla zapewnienia bezpieczeństwa i integralności danych znajdujących się w bazie. W praktyce, mogą wystąpić sytuacje, w których użytkownik wyłączy JavaScript, dlatego niezbędne jest, aby walidacja odbywała się również po stronie serwera, jednak głównym celem jest zapewnienie wstępnej walidacji na poziomie klienta.

Pytanie 23

Dla dowolnego a z zakresu (0,99) celem funkcji napisanej w języku JavaScript jest
function fun(a)
 {
    for(n=a; n <=100; n++)
    document.write(n);
    return(n);
 }

A. zwrócenie liczb z zakresu a .. 99
B. wypisanie liczb z zakresu a .. 100 oraz zwrócenie wartości zmiennej n
C. wypisanie liczb z zakresu a .. 99 oraz zwrócenie wartości 100
D. wypisanie wartości zmiennej a i zwrócenie wartości zmiennej n
Wszystkie niepoprawne odpowiedzi zawierają błędne założenia dotyczące zakresu wypisywanych liczb oraz wartości zwracanej przez funkcję. W przypadku opcji dotyczącej zwrócenia liczb z przedziału a .. 99, ściśle rzecz biorąc, nie uwzględnia ona końcowej wartości 100, co jest niepoprawne, ponieważ funkcja z założenia przewiduje iterację aż do wartości 100. W odpowiedzi dotyczącej wypisania liczb z przedziału a .. 99 i zwrócenia wartości 100, również występuje błąd, ponieważ funkcja nie kończy się na 99, a na 100, a wartość zwracana przez funkcję to 'n', która po ostatniej iteracji wynosi 101. Alternatywnie, jeśli chodzi o wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n, ta odpowiedź nie odnosi się do głównego celu funkcji, którym jest wypisanie liczb w określonym zakresie. Wartość zmiennej 'a' nie jest wypisywana jako pojedyncza wartość, a 'n' jako iterator nie reprezentuje wartości 100, lecz przekracza ją po zakończeniu pętli. Dlatego wszystkie te odpowiedzi zawierają fundamentalne nieporozumienia co do działania pętli for i użycia zmiennej 'n' w kontekście realizacji założonej funkcji.

Pytanie 24

W jakiej technologii niemożliwe jest przetwarzanie danych wprowadzanych przez użytkownika na stronie WWW?

A. PHP
B. AJAX
C. JavaScript
D. CSS
PHP, AJAX i JavaScript to technologie, które mają zdolność do przetwarzania danych użytkownika wprowadzanych na stronach WWW. PHP jest językiem skryptowym po stronie serwera, który może obsługiwać dane użytkowników z formularzy, przetwarzać je, a następnie zwracać odpowiedzi do klienta. Dzięki PHP można na przykład zbierać dane z formularzy rejestracyjnych, walidować je i przechowywać w bazach danych. AJAX, będący technologią asynchronicznego przetwarzania danych, pozwala na komunikację z serwerem bez potrzeby przeładowywania strony. Dzięki AJAX użytkownicy mogą wprowadzać dane w formularzach i otrzymywać na bieżąco odpowiedzi z serwera, co poprawia interaktywność aplikacji internetowych. JavaScript, jako język skryptowy po stronie klienta, umożliwia manipulację danymi wprowadzanymi przez użytkowników i wykonuje walidację danych w czasie rzeczywistym. Przykładowo, JavaScript może kontrolować poprawność danych w formularzach przed ich wysłaniem na serwer, co zapobiega błędom i zwiększa użyteczność aplikacji. Dlatego, w przeciwieństwie do CSS, te technologie są kluczowe dla przetwarzania i interakcji z danymi użytkowników, co sprawia, że są niezbędne w nowoczesnym web developmencie.

Pytanie 25

W formularzu wartość z pola input o typie number została przypisana do zmiennej a, a następnie przetworzona w skrypcie JavaScript w sposób poniższy

var x = parseInt(a);

Jakiego typu jest zmienna x?

A. liczbowe, całkowite.
B. zmiennoprzecinkowego.
C. NaN
D. napisowego.
Odpowiedź "liczbowego, całkowitego" jest poprawna, ponieważ funkcja <span>parseInt()</span> w JavaScript konwertuje argument na liczbę całkowitą. Kiedy zmienna <span>a</span> zawiera wartość z pola <span>input</span> o typie <span>number</span>, to ta wartość jest już reprezentacją liczby, co oznacza, że <span>parseInt()</span> przyjmuje ją jako argument i zwraca wartość liczbową całkowitą. Przykładowo, jeżeli użytkownik wprowadzi 42, to <span>parseInt(42)</span> zwróci 42 jako liczbę całkowitą. Dobrą praktyką jest używanie <span>parseInt()</span> z drugim argumentem, który określa system liczbowy (np. <span>parseInt(a, 10)</span>), co zapobiega niejednoznaczności w interpretacji liczby. Warto również pamiętać, że w przypadku, gdy wartość wprowadzona do <span>a</span> nie jest liczbą całkowitą, <span>parseInt()</span> nadal zwróci liczbę całkowitą, obcinając część dziesiętną (np. <span>parseInt(4.9)</span> zwróci 4). Dlatego w kontekście powyższego pytania, zmienna <span>x</span> przyjmuje typ liczbowy, całkowity.

Pytanie 26

Jaką wartość przyjmie zmienna po wykonaniu poniższego fragmentu kodu w JavaScript?

var w=0;
var i=1;
for (i = 1; i < 50; i++)
{
    if (i%2 == 0)
        w += i;
}
A. liczbom naturalnym, które są nieparzyste i mniejsze od 50
B. suma wszystkich naturalnych liczb nieparzystych, które są większe od 50
C. liczbie naturalnych liczb parzystych większych od 50
D. suma naturalnych liczb parzystych, które są mniejsze od 50
Kod przedstawiony w pytaniu jest fragmentem programu JavaScript, który ma za zadanie zsumować wszystkie liczby parzyste mniejsze od 50. Początkowo zmienna w jest ustawiona na 0 i reprezentuje sumę, którą będziemy obliczać. Pętla for zaczyna się od i=1 i iteruje do i<50 zwiększając wartość i o 1 w każdej iteracji. Wewnątrz pętli znajduje się instrukcja warunkowa if, która sprawdza, czy liczba i jest parzysta, co oznacza, że jej reszta z dzielenia przez 2 wynosi 0. Jeśli warunek jest spełniony, liczba i jest dodawana do zmiennej w. W efekcie po zakończeniu pętli zmienna w zawiera sumę wszystkich parzystych liczb mniejszych niż 50. Przykładem praktycznego zastosowania takiego algorytmu może być sytuacja, w której musimy szybko obliczyć sumę określonego zbioru liczb spełniających dane kryterium, co jest częste w analizie danych lub generowaniu raportów. Konstrukcje takie jak pętla for i operator modulo są podstawowymi narzędziami w programowaniu, pozwalającymi na efektywne przetwarzanie danych i automatyzację złożonych operacji obliczeniowych, co jest zgodne z dobrymi praktykami w branży IT.

Pytanie 27

W formularzu wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w sposób następujący: ```var x = parseInt(a);``` Jakiego typu będzie zmienna x?

A. liczbowego, całkowitego
B. Nan
C. napisowego
D. zmiennoprzecinkowego
Zmienna x, przypisana w wyniku zastosowania funkcji parseInt na zmiennej a, będzie typu liczbowego, całkowitego. Funkcja parseInt jest używana w JavaScript do konwersji wartości na liczbę całkowitą. Jeśli a jest wartością wprowadzoną przez użytkownika w polu input o typie number, to parseInt(a) zwróci wartość liczbową, eliminując wszelkie znaki niebędące cyframi. Wartością return będzie liczba całkowita, ponieważ parseInt zwraca tylko całkowite części liczb. Wartością zwróconą będzie NaN, jeśli a nie zawiera żadnych cyfr, co w tym kontekście nie ma miejsca, zakładając, że użytkownik wprowadził poprawne dane. Przykład: jeśli użytkownik wprowadzi '42.5', to parseInt('42.5') zwróci 42, eliminując część dziesiętną. Warto zaznaczyć, że parseInt może przyjąć drugi argument, który określa system liczbowy (bazę), w jakim liczba ma być interpretowana, co jest zgodne z wytycznymi ECMAScript. Poznanie możliwości i ograniczeń funkcji parseInt jest kluczowe w pracy z danymi liczbowymi w JavaScript, szczególnie w kontekście walidacji danych wejściowych.

Pytanie 28

Jak nazywa się metoda, która pozwala na nawiązanie asynchronicznego połączenia klienta z serwerem oraz umożliwia wymianę danych bez konieczności przeładowania całej strony WWW?

A. PHP
B. XML
C. AJAX
D. VBScript
Wybór odpowiedzi nieprawidłowych, takich jak PHP, XML czy VBScript, wskazuje na częste nieporozumienia dotyczące funkcji oraz zastosowania tych technologii w kontekście komunikacji klient-serwer. PHP to język skryptowy wykorzystywany głównie do generowania dynamicznej treści na serwerze. Chociaż PHP może być używane do obsługi żądań z AJAX, samo w sobie nie zapewnia asynchroniczności ani nie umożliwia komunikacji bez przeładowania strony. XML, mimo że jest formatem danych, nie jest techniką komunikacyjną. Może być wykorzystywane w AJAX jako format przesyłania danych, ale nie jest to jego główne zastosowanie. VBScript to język skryptowy, który jest przestarzały i nie jest odpowiedni do nowoczesnych aplikacji internetowych. Wybierając te odpowiedzi, można popaść w błąd, sądząc, że różne technologie mają podobne zastosowania, co prowadzi do nieporozumień dotyczących struktury aplikacji internetowych. Ważne jest zrozumienie roli, jaką różne technologie odgrywają w architekturze aplikacji, aby właściwie wykorzystywać ich możliwości w praktyce.

Pytanie 29

W instrukcji warunkowej języka JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w zakresie (0, 100), a wartość zmiennej b jest większa od zera. Taki warunek można zapisać w sposób następujący

A. if (a>0 && a<100 && b>0)
B. if ((a>0 && a<100) || b<0)
C. if ((a>0 || a<100) && b>0)
D. if (a>0 || a<100 || b<0)
Analizując inne odpowiedzi, można zauważyć, że każda z nich zawiera błędne założenia dotyczące logiki warunkowej. W przypadku pierwszej odpowiedzi, użycie operatora '||' (OR) w połączeniu z warunkiem 'b<0' jest niewłaściwe, ponieważ nie spełnia kryteriów podanych w pytaniu. Ten warunek pozwalałby na zaakceptowanie sytuacji, w której wartość 'b' może być ujemna, co jest sprzeczne z wymaganym sprawdzeniem, że 'b' musi być większe od zera. Druga odpowiedź nie uwzględnia w pełni przedziału dla 'a', ponieważ stosuje operator '||', co oznacza, że warunek może być spełniony, jeśli 'a' jest mniej niż 0 lub więcej niż 100, co jest sprzeczne z wymaganiami. Trzecia odpowiedź posługuje się z kolei zbyt szerokim zakresem warunków, wprowadzając możliwość, że 'a' może być poniżej 0 lub większe niż 100, oraz akceptując wartość 'b' mniejszą od zera. Wszystkie te błędy wynikają z niewłaściwego zrozumienia operatorów logicznych oraz ich zastosowania w kontekście warunków, co jest kluczowym aspektem programowania w JavaScript. Aby stosować logikę warunkową prawidłowo, programiści powinni dokładnie analizować, jakie warunki muszą zostać spełnione i jak operatorzy wpływają na całą logikę instrukcji. Zrozumienie tych zasad jest fundamentem efektywnego programowania.

Pytanie 30

Wskaż funkcję w JavaScript, która pozwoli obliczyć połowę kwadratu liczby podanej jako argument.

A. function wynik(a) { return a/2+a/2; }
B. function wynik(a) { return a*2/2; }
C. function wynik(a) { return 2*a/a; }
D. function wynik(a) { return a*a/2; }
Wybór nieodpowiedniej funkcji do obliczenia połowy kwadratu liczby pokazuje, że można się jeszcze wiele nauczyć o podstawowych operacjach arytmetycznych. Na przykład, funkcje takie jak function wynik(a) { return a/2+a/2; } czy function wynik(a) { return a*2/2; } w ogóle nie mają sensu w tym kontekście. Pierwsza z tych funkcji po prostu dzieli liczbę przez dwa i dodaje ją z powrotem, przez co dostajemy z powrotem oryginalną wartość, a nie jej kwadrat. Druga funkcja też nie działa jak trzeba, bo mnożenie przez 2 i dzielenie przez 2 nic nie zmienia, więc dostajemy tylko 'a' z powrotem. A funkcja function wynik(a) { return 2*a/a; } też nie jest trafiona, bo dzielenie nie pomaga w obliczeniu kwadratu. Ważne jest, żeby zrozumieć, że kwadrat liczby obliczamy mnożąc tę liczbę przez samą siebie. Żeby dostać połowę kwadratu, musimy podzielić wynik mnożenia przez 2. Zrozumienie tych błędów pomoże Ci unikać ich w przyszłości i lepiej rozumieć matematykę oraz programowanie, co jest naprawdę ważne, gdy piszesz kod.

Pytanie 31

Jak można wyświetlić bieżącą datę oraz czas na stronie internetowej przy użyciu JavaScript?

A. echo Date() + Time()
B. document.write(Date())
C. innerHTML = Date()
D. echo Date()
Odpowiedź 'document.write(Date());' jest prawidłowa, ponieważ wykorzystuje metodę 'document.write()', która pozwala na wstawienie tekstu bezpośrednio do dokumentu HTML w momencie jego ładowania. Funkcja 'Date()' zwraca aktualną datę i czas w formie tekstu, co czyni ją odpowiednią do użycia w metodzie 'document.write()'. Warto zauważyć, że zastosowanie 'document.write()' może być ograniczone do momentu pierwszego ładowania strony, dlatego istotne jest, aby używać tej metody z rozwagą. Dobrym praktycznym przykładem jest skrypt, który po załadowaniu strony wyświetla datę i czas w nagłówku lub w innym elemencie strony. Przykładowo, można użyć: <script>document.write('Aktualna data i czas: ' + Date());</script>. Dodatkowo, warto zaznaczyć, że w nowoczesnym podejściu do programowania w JavaScript preferuje się użycie metod manipulacji DOM, takich jak 'innerHTML', ale 'document.write()' nadal ma swoje miejsce w prostych przykładach edukacyjnych.

Pytanie 32

W skrypcie JavaScript, aby uzyskać dane od użytkownika, można wykorzystać okno wyświetlane przez funkcję

A. confirm()
B. documet.write()
C. alert()
D. prompt()
Użycie alert() w kontekście pobierania danych od użytkownika jest niepoprawne, ponieważ ta funkcja służy jedynie do wyświetlania komunikatów informacyjnych, które nie pozwalają na wprowadzenie żadnych danych. Użytkownik może tylko odczytać wiadomość i kliknąć przycisk, aby ją zamknąć. To sprawia, że alert() nie jest funkcjonalnym narzędziem do interakcji, a jedynie prostym sposobem na informowanie użytkownika. Z kolei confirm() również nie jest właściwym rozwiązaniem, ponieważ ta funkcja służy do uzyskiwania potwierdzenia od użytkownika na temat określonej akcji, oferując jedynie opcje "OK" i "Anuluj", co nie umożliwia wprowadzenia tekstu. Wiele osób może mylnie sądzić, że zarówno alert(), jak i confirm() są odpowiednie do zbierania danych, jednak ich zastosowanie ogranicza się do prostych interakcji. Ponadto, documet.write() (co prawdopodobnie jest literówką, a powinno być document.write()) jest metodą służącą do dynamizacji treści HTML na stronie, ale nie ma żadnego związku z pobieraniem danych od użytkownika. Użycie tej metody do generowania treści na stronie może prowadzić do problemów z wydajnością i trudnościami w utrzymaniu kodu. Współczesne standardy wskazują, że lepiej jest korzystać z formularzy HTML oraz zdarzeń JavaScript do interakcji z użytkownikami, co nie tylko poprawia jakość kodu, ale również zwiększa ergonomię i funkcjonalność aplikacji.

Pytanie 33

W języku JavaScript należy uzyskać dostęp do elementu w pierwszym akapicie podanego kodu HTML. Jak można to zrobić za pomocą funkcji

<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
...
A. getElementByTagName('p')[0];
B. getElementById('p1');
C. getElement('p');
D. getElementByClassName('p.1')[0];
Wariant getElement('p') jest niepoprawny, ponieważ nie istnieje w JavaScript żadna funkcja o takiej nazwie. Odwoływanie się do elementów DOM w JavaScript wymaga stosowania precyzyjnych i zgodnych z dokumentacją metod, takich jak getElementById, getElementsByTagName czy querySelector. Kolejna opcja, getElementById('p1'), jest błędna w kontekście tego pytania, ponieważ getElementById wymaga podania unikalnego identyfikatora ID, który w tym przypadku nie został określony w kodzie HTML. Użycie tej metody odnosiłoby się do elementu posiadającego atrybut id równy 'p1', co nie pasuje do przedstawionego kodu. Z kolei getElementByClassName('p.1') jest niepoprawne z kilku powodów. Po pierwsze, funkcja ta szuka elementów na podstawie klasy, a w kodzie HTML nie ma klasy o nazwie 'p.1'. Po drugie, format 'p.1' sugeruje błędne użycie znaków, ponieważ kropka jest separatorem w nazwach klas, a nie ich częścią. Poprawne odwołanie do elementu pierwszego paragrafu wymaga zastosowania jednej z metod iterujących po elementach, jak getElementsByTagName, która zwraca listę elementów o danym tagu, a następnie użycia indeksowania, aby precyzyjnie wskazać pierwszy element tej listy. Zrozumienie tych różnic i odpowiednie stosowanie metod JavaScript jest kluczowe dla efektywnego zarządzania elementami DOM i tworzenia dynamicznych stron WWW. Zwracanie uwagi na poprawne identyfikatory, klasy i struktury metod to fundament przy pracy z JavaScript i DOM, który pozwala na uniknięcie wielu powszechnie popełnianych błędów.

Pytanie 34

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. serwer MySQL
B. serwer WWW
C. przeglądarka internetowa
D. debugger JavaScript
Aby uruchomić skrypt JavaScript, niezbędne jest posiadanie przeglądarki internetowej, ponieważ JavaScript jest językiem skryptowym, który działa bezpośrednio w środowisku przeglądarki. Przeglądarki, takie jak Chrome, Firefox czy Safari, zawierają silniki JavaScript, które interpretują i wykonują kod skryptowy. Przykładem może być użycie funkcji 'console.log()', która umożliwia wyświetlanie danych w konsoli przeglądarki. Ponadto, standard ECMAScript, na którym oparty jest JavaScript, określa zasady i funkcje tego języka, a przeglądarki implementują te standardy, co zapewnia spójność działania skryptów. Użytkownicy mogą również używać narzędzi deweloperskich, dostępnych w przeglądarkach, do debugowania i optymalizacji skryptów, ale podstawowym warunkiem uruchomienia kodu JavaScript zawsze będzie przeglądarka internetowa. W obecnych czasach, JavaScript stał się kluczowym elementem tworzenia interaktywnych aplikacji internetowych, co podkreśla jego znaczenie w ekosystemie webowym.

Pytanie 35

W języku JavaScript zapis ```x = przedmiot.nazwa();``` oznacza, że

A. nazwa jest właściwością obiektu przedmiot.
B. nazwa jest polem klasy przedmiot.
C. zmienna x będzie przechowywać wynik działania metody nazwa.
D. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
Twoja odpowiedź jest niepoprawna. Wybierając opcję, że 'nazwa jest właściwością obiektu przedmiot' możesz mylić funkcje i właściwości. Właściwości to wartości przechowywane w obiekcie, natomiast metody to funkcje związane z obiektem. Jeśli zapis jest w formie 'przedmiot.nazwa();', to 'nazwa' jest metodą, a nie właściwością obiektu. Druga niepoprawna odpowiedź, 'nazwa jest polem klasy przedmiot', sugeruje, że JavaScript jest językiem typu klasowego, jak Java czy C#. W rzeczywistości, JavaScript jest językiem prototypowym, co oznacza, że nie ma klas. Zamiast tego, obiekty dziedziczą bezpośrednio od innych obiektów. Ostatnia niepoprawna odpowiedź, 'zmienna x będzie przechowywać wynik działania funkcji przedmiot', prawdopodobnie wynika z niezrozumienia różnicy między metodami a wolno stojącymi funkcjami. W JavaScript, funkcje są 'wolno stojące', co oznacza, że nie są związane z żadnym obiektem, podczas gdy metody są funkcjami zdefiniowanymi na obiekcie.

Pytanie 36

Jakie wyrażenie logiczne powinno być użyte w języku JavaScript, aby zastosować operacje tylko dla wszystkich liczb ujemnych z przedziału jednostronnie domkniętego <-200,-100)?

A. (liczba >=-200) || (liczba>-100)
B. (liczba >=-200) && (liczba<-100)
C. (liczba <=-200) && (liczba<-100)
D. (liczba <=-200) || (liczba>-100)
Patrząc na błędne odpowiedzi, pierwsza z nich korzysta z operatora OR (||), co powoduje, że wyrażenie jest prawdziwe, jeśli chociaż jeden z warunków jest spełniony. Więc, jeśli liczba jest niższa niż -200, to pierwszy warunek będzie prawdziwy i całość też. To sprawia, że operacje mogą być wykonywane na liczbach, które nie mieszczą się w naszym przedziale, co jest sprzeczne z tym, co chcemy osiągnąć. Kolejna odpowiedź też używa operatora OR, ale jej warunek mówi, że liczba ma być większa niż -100. To prowadzi do sytuacji, gdzie każda liczba powyżej -100 jest uznawana za poprawną, co jest totalnie niezgodne z naszym zamysłem. Ostatnia odpowiedź ma operator AND, ale z kiepskimi warunkami. Warunek liczba <= -200 nie spełnia wymagań, bo nie bierze pod uwagę liczb w przedziale od -200 do -100, tylko te mniejsze niż -200. Dlatego takie wyrażenie nie zadziała jak trzeba i nie pozwoli na właściwe przetwarzanie liczb w wymaganym zakresie.

Pytanie 37

Prezentowany fragment dokumentu HTML z użyciem JavaScript spowoduje, że po naciśnięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz1.png zostanie wymieniony przez obraz2.png
B. obraz2.png zostanie zniknięty
C. obraz2.png zostanie wymieniony przez obraz1.png
D. obraz1.png zostanie zniknięty
Odpowiedź jest poprawna, ponieważ przycisk w kodzie JavaScript powoduje, że po jego kliknięciu element HTML o identyfikatorze 'id1', który jest obrazem 'obraz2.png', zostanie ukryty. Wartość 'style.display' zmienia się na 'none', co jest standardowym sposobem na ukrycie elementu w dokumentach HTML. W praktyce takie podejście jest szeroko stosowane w interaktywnych aplikacjach webowych, aby poprawić doświadczenia użytkowników, umożliwiając im dynamiczne ukrywanie lub wyświetlanie treści w odpowiedzi na ich działania. Ukrywanie elementów zamiast ich usuwania z DOM ma swoje zalety, ponieważ umożliwia ich późniejsze przywrócenie, co jest bardziej efektywne w kontekście wydajności. Dobrym przykładem może być rozwijane menu na stronie, gdzie po kliknięciu na dany element, jego zawartość jest ukrywana lub pokazywana bez potrzeby przeładowywania całej strony.

Pytanie 38

W języku JavaScript trzeba zapisać warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (bez 0) lub zmienna b przyjmie wartość z zamkniętego przedziału od 10 do 100. Wyrażenie logiczne w tym warunku ma formę

A. (a>0) && ((b>=10) || (b<=100))
B. (a>0) && ((b>=10) && (b<=100))
C. (a>0) || ((b>=10) && (b<=100))
D. (a>0) || ((b>=10) || (b<=100))
Warunek zapisany w języku JavaScript jako (a>0) || ((b>=10) && (b<=100)) jest poprawny, ponieważ spełnia wymagania dotyczące sprawdzenia, czy zmienna a jest liczbą naturalną dodatnią oraz czy zmienna b mieści się w przedziale od 10 do 100. Wyrażenie logiczne wykorzystuje operator || (alternatywa), który zwraca true, jeśli przynajmniej jeden z warunków jest spełniony. Warunek a>0 zapewnia, że zmienna a jest większa od zera, co jest zgodne z definicją liczb naturalnych dodatnich. Z kolei wyrażenie (b>=10) && (b<=100) sprawdza, czy zmienna b jest w zadanym przedziale, co jest zgodne z wymaganiami. Wartości graniczne 10 i 100 są uwzględnione dzięki operatorowi && (konjunkcja), który wymaga, aby oba warunki były prawdziwe, aby całe wyrażenie zwróciło true. W praktyce, takie podejście można wykorzystać w różnych kontekstach, np. walidacji danych wejściowych w formularzach internetowych, gdzie kluczowe jest zapewnienie, że użytkownik wprowadza poprawne wartości. Tego rodzaju wyrażenia logiczne są fundamentem programowania w JavaScript, umożliwiając tworzenie bardziej złożonych logik aplikacji. Zgodnie z dokumentacją ECMAScript, użycie operatorów logicznych jest standardowym sposobem na przetwarzanie warunków w programowaniu.

Pytanie 39

Sprawdzanie poprawności wypełnienia formularza, które ma przebiegać po stronie klienta, powinno być wykonane w języku

A. JavaScript
B. CSS
C. PHP
D. Ruby on Rails
Zastosowanie CSS do weryfikacji formularzy jest nieodpowiednie, ponieważ CSS jest językiem stylizacji, a nie programowania. Jego głównym zadaniem jest określenie wyglądu i układu elementów na stronie, a nie logika operacji lub przetwarzanie danych. CSS nie ma możliwości interakcji z danymi użytkownika ani przeprowadzania jakichkolwiek obliczeń, co czyni go całkowicie nieadekwatnym narzędziem do walidacji formularzy. Z kolei PHP jest językiem skryptowym działającym po stronie serwera, co oznacza, że wszelkie operacje związane z weryfikacją danych musiałyby odbywać się po przesłaniu formularza, co prowadzi do złego doświadczenia użytkownika. Użytkownik musiałby czekać na odpowiedź serwera, co często wiąże się z opóźnieniami i frustracją. Ruby on Rails, jako framework do rozwijania aplikacji webowych, również nie jest odpowiednim rozwiązaniem do realizacji walidacji po stronie klienta. Jego zastosowanie koncentruje się głównie na logice po stronie serwera i tworzeniu aplikacji, a nie na interakcji użytkownika z interfejsem. Tym samym zarówno PHP, jak i Ruby on Rails nie są w stanie efektywnie zrealizować wymogu weryfikacji formularzy przed ich przesłaniem.

Pytanie 40

Która z poniższych opcji najlepiej opisuje przedstawioną definicję w JavaScript?

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. obiektu
B. tablicy
C. zbioru
D. klasy
Obiekt w JavaScript jest bardziej skomplikowaną strukturą niż tablica i służy do przechowywania danych w postaci par klucz-wartość. W przedstawionym przykładzie nie mamy par klucz-wartość a jedynie listę wartości co wyklucza definicję obiektu. Kolekcja w kontekście JavaScript nie jest specyficznym typem danych; odnosi się ogólnie do struktur danych które przechowują wiele elementów. Tablice mogą być częścią kolekcji ale kolekcje mogą obejmować też inne struktury jak mapy i zestawy dlatego definicja ta byłaby zbyt ogólna w tym przypadku. Klasa natomiast jest częścią paradygmatu obiektowego wprowadzonego w nowszych wersjach JavaScript do definiowania struktur danych i ich zachowań. Klasy nie są bezpośrednio powiązane z tablicami które służą do przechowywania danych w uporządkowany sposób. Typowe błędy przy interpretacji takich struktur wynikają zwykle z niezrozumienia różnic między obiektami tablicami i klasami. Tablice są używane przede wszystkim do przechowywania zbiorów danych w uporządkowanej formie podczas gdy obiekty są bardziej elastyczne w definiowaniu struktury danych a klasy służą do tworzenia złożonych struktur danych i logiki. Zrozumienie tych różnic jest kluczowe w efektywnym korzystaniu z języka JavaScript i pozwala na bardziej świadome podejmowanie decyzji dotyczących wyboru struktur danych odpowiednich do konkretnego problemu.