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: 13 listopada 2025 22:40
  • Data zakończenia: 13 listopada 2025 23:06

Egzamin zdany!

Wynik: 35/40 punktów (87,5%)

Wymagane minimum: 20 punktów (50%)

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

W JavaScript metoda Math.random() ma na celu

A. zwrócić liczbę po zaokrągleniu
B. zaokrąglić liczbę do najbliższej większej liczby całkowitej
C. porównać dwie sekwencje znaków
D. zwrócić liczbę pseudolosową
Metoda Math.random() w języku JavaScript jest kluczowym narzędziem do generowania liczb pseudolosowych w zakresie od 0 (włącznie) do 1 (wyłącznie). Oznacza to, że każdorazowe wywołanie tej metody zwraca nową, losową wartość zmiennoprzecinkową, co jest przydatne w wielu zastosowaniach, takich jak tworzenie gier, symulacje, a także w algorytmach generujących dane testowe. Ważne jest, aby pamiętać, że Math.random() nie generuje liczb losowych w sensie statystycznym, lecz wykorzystuje algorytmy deterministyczne do produkcji wartości, co oznacza, że są one przewidywalne, jeśli znany jest stan początkowy. W praktyce, aby uzyskać liczbę losową w określonym zakresie, można zastosować następujący wzór: Math.floor(Math.random() * (max - min + 1)) + min, gdzie 'min' i 'max' to odpowiednio dolna i górna granica zakresu. To podejście jest zgodne z dobrymi praktykami w programowaniu, gdyż pozwala na elastyczne wykorzystanie losowości w aplikacjach.

Pytanie 2

Aby zmienić wartość atrybutu elementu opisanego w CSS przy użyciu skryptu JavaScript, należy zastosować następujący zapis

A. document.getElementById(id).style.<nazwa właściwości> = <nowa wartość>
B. document.getElementById(id).innerHTML = <nowa wartość>
C. document.getElementById(id).<nazwa właściwości> = <nowa wartość>
D. document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>
Odpowiedź "document.getElementById(id).style.<nazwa właściwości> = <nowa wartość>;" jest poprawna, ponieważ umożliwia bezpośrednią modyfikację stylu CSS elementu HTML o określonym identyfikatorze. Przy użyciu metody getElementById() uzyskujemy dostęp do konkretnego elementu w DOM (Document Object Model), a następnie poprzez właściwość style, możemy zmieniać różne atrybuty CSS. Na przykład, aby zmienić kolor tła elementu, możemy napisać: document.getElementById('myElement').style.backgroundColor = 'red';. Wartością, którą przypisujemy, jest odpowiednia właściwość CSS, co czyni ten sposób zgodnym z dobrymi praktykami w programowaniu JavaScript. Dodatkowo, korzystając z tej metody, możemy dynamicznie dostosowywać styl elementów na stronie w odpowiedzi na interakcje użytkownika, co jest kluczowe w nowoczesnych aplikacjach webowych. Warto też zauważyć, że zmiany dokonane w ten sposób są natychmiast widoczne na stronie, co przyczynia się do lepszego doświadczenia użytkownika.

Pytanie 3

Algorytm przedstawiony na rysunku można zapisać w języku JavaScript za pomocą instrukcji

A. for(i = 0; i > 10; i++)

B. var i = 0;
   while(i <= 10)
     i += 2;

C. var i = 0;
   do
     i++;
   while(i > 10);

D. var i = 0;
   do
     i = i + 2;
   while(i < 10);
Ilustracja do pytania
A. A.
B. B.
C. D.
D. C.
Dobrze! Wybrałeś prawidłową odpowiedź B. Biorąc pod uwagę wykres przepływu, zmienna 'i' jest inicjalizowana wartością 0 i następnie w pętli zwiększana o 2, dopóki jej wartość nie przekroczy 10. Wprowadzona instrukcja w JavaScript (var i = 0; while(i <= 10) { i += 2; }) idealnie odzwierciedla proces przedstawiony na diagramie. Inicjalizacja zmiennej jest ważnym krokiem w programowaniu, który pozwala na użycie zmiennej w kodzie, a pętla 'while' jest często stosowana do wykonywania części kodu wielokrotnie do momentu, aż warunek przestanie być spełniony. W tym przypadku, warunkiem jest 'i' mniejsze lub równe 10, a kod wewnątrz pętli zwiększa wartość 'i' o 2 za każdym razem, gdy jest wykonywany. Jest to typowy przykład użycia pętli i operatorów w języku JavaScript.

Pytanie 4

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. myszki został naciśnięty
B. klawiatury został zwolniony
C. klawiatury został naciśnięty
D. myszki został zwolniony
Zdarzenie onKeydown w JavaScript jest wywoływane, gdy użytkownik naciśnie klawisz na klawiaturze. To fundamentalne zdarzenie jest często wykorzystywane w aplikacjach webowych do obsługi interakcji użytkowników, takich jak wprowadzanie danych czy nawigacja po formularzach. W momencie naciśnięcia klawisza, przeglądarka emituje to zdarzenie, co pozwala programistom na reagowanie na konkretne akcje. Na przykład, jeśli chcemy stworzyć prostą grę opartą na ruchu postaci, możemy wykorzystać onKeydown do wykrywania klawiszy strzałek i poruszania postacią w odpowiednich kierunkach. Warto również zauważyć, że onKeydown różni się od onKeyup, które jest wywoływane, gdy klawisz jest zwolniony, co ma znaczenie w przypadku obsługi sekwencji klawiszy oraz klawiszy modyfikujących, takich jak Shift czy Ctrl. Zrozumienie tych różnic jest kluczowe dla tworzenia responsywnych i interaktywnych aplikacji webowych, zgodnych z najlepszymi praktykami programowania.

Pytanie 5

W języku JavaScript można inaczej zapisać instrukcję a++; jako

A. a<<1;
B. a&1;
C. a=a+1;
D. 1+=a;
Odpowiedź 'a=a+1;' jest poprawna, ponieważ dokładnie odzwierciedla działanie inkrementacji w JavaScript. Operacja a++ zwiększa wartość zmiennej a o 1, co można również zapisać jako przypisanie nowej wartości do a, uzyskanej przez dodanie do niej 1. Wartości a nie można zmieniać bezpośrednio bez przypisania nowej wartości, a zapis 'a=a+1;' jasno pokazuje ten proces. W praktycznych zastosowaniach, taka forma może być używana w pętlach lub w sytuacjach, gdy potrzebujemy kontrolować, jak zmienia się wartość zmiennej. Na przykład, w iteracjach przez tablicę, zastosowanie 'a=a+1;' umożliwia elastyczne manipulowanie wartością zmiennej, co jest zgodne z zasadami programowania. Używanie operatorów przypisania, takich jak +=, to dobra praktyka, która poprawia czytelność oraz zrozumienie kodu, zwłaszcza dla mniej doświadczonych programistów, którzy mogą nie znać bardziej zaawansowanych form zapisu.

Pytanie 6

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Wyświetli długość tekstu ze zmiennej n
B. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
C. Przypisze zmienną n do zmiennej s
D. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
W języku JavaScript właściwość length dla obiektów typu String zwraca liczbę znaków w danym napisie. W przedstawionym fragmencie skryptu zmiennej n przypisano wartość stringa 'Napis1'. Kiedy używamy n.length uzyskujemy długość tego stringa czyli liczbę 6 ponieważ są w nim dokładnie sześć znaków. Następnie tę wartość przypisujemy zmiennej s co oznacza że s przechowuje liczbę 6. Jest to użyteczne w wielu sytuacjach takich jak walidacja danych wejściowych w formularzach sprawdzanie czy dany tekst mieści się w określonych limitach lub po prostu kontrola poprawności danych w procesach biznesowych. Wartość length jest często stosowana w pętlach do iteracji przez każdy znak w stringu lub w operacjach takich jak odcinanie fragmentów tekstu. Praktyka korzystania z length jest standardem w programowaniu webowym i zaliczana jest do dobrych praktyk ponieważ umożliwia łatwą manipulację tekstowymi danymi i kontrolę ich wymiaru co bywa krytyczne zwłaszcza w aplikacjach o dużej skali gdzie efektywność i klarowność kodu mają znaczenie kluczowe.

Pytanie 7

Aby poprawnie skomentować linię kodu w języku JavaScript, należy po znakach // wprowadzić komentarz x = Math.max(a,b,c); //

A. nieprawidłowe dane
B. wybór wartości maksymalnej spośród zmiennych a, b oraz c
C. w zmiennej x minimalna wartość ze zmiennych a, b, c
D. w zmiennej x maksymalna wartość ze zmiennych a, b, c
W analizowanej linii kodu JavaScript, wykorzystujemy funkcję Math.max, która służy do określenia maksymalnej wartości spośród podanych argumentów. W tym przypadku, wartości te są reprezentowane przez zmienne a, b oraz c. Zastosowanie funkcji Math.max jest standardem w programowaniu w JavaScript, co pozwala na efektywne przeprowadzenie operacji porównawczych. Użycie operatora przypisania '=' pozwala na zapisanie wyniku operacji do zmiennej x, co z kolei umożliwia dalsze przetwarzanie tej wartości w programie. Przykład użycia tej funkcji wygląda następująco: var x = Math.max(a, b, c);. Warto również zwrócić uwagę na to, że funkcja Math.max zwraca wartości numeryczne, co czyni ją niezastąpioną w przypadkach, gdy potrzebne jest porównanie różnych liczb w celu wyłonienia największej. W kontekście standardów, Math.max jest częścią obiektu Math, który jest wbudowany w JavaScript i podlega ogólnym zasadom ECMAScript. Dlatego znajomość i umiejętność stosowania tej funkcji jest kluczowa dla każdego programisty JavaScript.

Pytanie 8

W jakim przypadku w JavaScript warunek jest spełniony, jeśli zmienna x przyjmuje wartość

if ((!isNaN(x)) && (x > 0))
A. wszelką dodatnią wartość liczbową
B. pusty ciąg znaków
C. nie-liczbową wartość
D. wszelką całkowitą wartość liczbową
Warunek zapisany w JavaScript if (!isNaN(x) && x>0) jest prawdziwy, gdy zmienna x przechowuje dowolną dodatnią wartość liczbową Takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ umożliwia skuteczne sprawdzenie czy wartość jest zarówno liczbowa jak i dodatnia Funkcja isNaN(x) zwraca true gdy x nie jest liczbą co powoduje że !isNaN(x) zwraca true tylko wtedy gdy x jest liczbą Następnie dodatkowy warunek x>0 sprawdza czy liczba jest większa od zera co oznacza że jest dodatnia Takie warunki są często używane w aplikacjach webowych do walidacji danych użytkownika Na przykład podczas wprowadzania kwoty transakcji system może używać podobnego warunku aby upewnić się że użytkownik nie wprowadza ujemnych wartości co mogłoby prowadzić do błędów logicznych w aplikacji Używanie takich warunków wspiera bezpieczeństwo i poprawność kodu co jest kluczowe w profesjonalnym środowisku programistycznym Dodatkowo takie podejście jest zgodne z zasadą przewidywalności działania kodu co jest istotne dla zapewnienia jego łatwej utrzymywalności i czytelności dla innych programistów

Pytanie 9

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. zwrócenie parzystych wartości liczb od a do b
D. wypisanie wszystkich liczb w zakresie 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 10

Jakie działanie wykonuje poniższy fragment kodu w języku JavaScript? n = "Napis1"; s = n.length;

A. Przypisuje do zmiennej s wartość odpowiadającą długości napisu z zmiennej n
B. Przypisuje do zmiennej s część napisu z zmiennej n, o długości określonej przez zmienną length
C. Przypisuje wartość zmiennej n do zmiennej s
D. Zwraca długość napisu zawartego w zmiennej n
Fragment skryptu w języku JavaScript, w którym zmienne n i s są definiowane, wykonuje przypisanie wartości długości napisu z zmiennej n do zmiennej s. Metoda length jest właściwością obiektów typu string, która zwraca liczbę znaków w danym napisie. W tym przypadku, jeśli zmienna n zawiera napis "Napis1", to zmienna s po wykonaniu tego skryptu przyjmie wartość 6, ponieważ napis ten składa się z 6 znaków. Praktyczne zastosowanie tej funkcji polega na możliwości dynamicznego określenia długości wprowadzanych danych, co jest kluczowe przy walidacji formularzy, obliczaniu rozmiaru danych czy tworzeniu interfejsów użytkownika. Dobrą praktyką w programowaniu jest zawsze uwzględnienie długości napisu w algorytmach przetwarzania tekstu, aby uniknąć błędów podczas operacji na stringach. Warto również wiedzieć, że w JavaScript właściwość length nie wymaga wywołania metody, co jest zgodne z ogólnym założeniem o uproszczeniu użycia obiektów, a tym samym podnosi czytelność kodu.

Pytanie 11

W języku JavaScript przedstawiona definicja jest definicją

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. obiektu.
B. klasy.
C. tablicy.
D. kolekcji.
Dobra robota! Wybrałeś poprawną odpowiedź, czyli tablicę. W języku JavaScript, tablice służą do przechowywania wielu wartości w pojedynczej zmiennej. W podanym przykładzie, zmienna 'imiona' jest tablicą, która zawiera ciągi znaków reprezentujące imiona. Tablica w JavaScript jest obiektem globalnym, który jest używany w kontekście obiektu. Tablice są jednym z podstawowych typów danych, które są niezbędne dla tworzenia i manipulowania danymi. Tworzenie tablicy jest bardzo proste, wystarczy użyć nawiasów kwadratowych [] i oddzielić elementy za pomocą przecinków. Oto przykład: var imiona = ['Jan', 'Anna', 'Piotr'];. W praktyce, tablice są używane w wielu różnych sytuacjach, takich jak przechowywanie danych do dalszej analizy, grupowanie powiązanych danych, tworzenie list lub tabel, a także do przechowywania danych na potrzeby pętli i innych struktur sterujących.

Pytanie 12

Jak można opisać przedstawiony obiekt w JavaScript?

var obiekt1 = {
  x: 0,
  y: 0,
  wsp: function() { ... }
}
A. dwiema właściwościami i jedną metodą
B. dwiema metodami i jedną właściwością
C. trzema metodami
D. trzema właściwościami
Obiekt w języku JavaScript to struktura danych, która przechowuje zbiór właściwości, gdzie każda właściwość jest parą klucz-wartość. W podanym przykładzie mamy obiekt o nazwie 'obiekt1' zdefiniowany za pomocą literału obiektowego. Składa się on z dwóch właściwości 'x' i 'y', które mają przypisane wartości liczby całkowitej zero oraz jednej metody 'wsp', która jest funkcją. Właściwości 'x' i 'y' są prostymi wartościami liczbowymi, a metoda 'wsp' jest zdefiniowana jako funkcja, co oznacza, że można ją wywoływać, aby wykonywać pewne operacje. Tego typu struktury są często używane w JavaScript do tworzenia obiektów reprezentujących dane, jak współrzędne punktów na płaszczyźnie. Dzięki możliwości definiowania metod, obiekty mogą wykonywać operacje na swoich danych, co jest zgodne z zasadami programowania obiektowego. Dzięki zrozumieniu tej struktury, programista może efektywnie zarządzać danymi i logiką aplikacji, stosując dobre praktyki takie jak enkapsulacja i modularność kodu.

Pytanie 13

W języku JavaScript rezultat wykonania instrukcji zmienna++; będzie równy wynikowi instrukcji

A. zmienna--;
B. zmienna = zmienna + 10;
C. zmienna === zmienna + 1;
D. zmienna += 1;
Zmienna <span>zmienna++;</span> w JavaScript to operator inkrementacji, który zwiększa wartość zmiennej o 1. Odpowiedź <span>zmienna += 1;</span> jest równoważna, gdyż również zwiększa wartość zmiennej o 1, korzystając z operatora przypisania z dodawaniem. Dobre praktyki programistyczne sugerują, że wykorzystanie operatorów skróconych, jak <span>+=</span>, poprawia czytelność kodu. Przykład zastosowania można zobaczyć w pętli, gdzie każdy krok może wymagać zwiększenia wartości licznika: <span>for (let i = 0; i < 10; i++) { licznik += 1; }</span>. Warto również zauważyć, że operator inkrementacji <span>++</span> może być używany w formie prefiksowej i postfiksowej, co ma znaczenie w kontekście zwracania wartości. Ponadto, w sytuacjach, gdy kod wymaga zwiększenia wartości zmiennej, preferowanie <span>zmienna += 1;</span> nad <span>zmienna++;</span> może poprawić zrozumienie logiki programu, zwłaszcza dla mniej doświadczonych programistów.

Pytanie 14

Co to jest AJAX?

A. Technologia umożliwiająca asynchroniczne przesyłanie danych między klientem a serwerem bez przeładowania strony
B. Biblioteka JavaScript do obsługi animacji i efektów wizualnych
C. System zarządzania bazą danych używany do przechowywania i manipulacji danymi
D. Język programowania służący do tworzenia stron internetowych
AJAX, czyli Asynchronous JavaScript and XML, to podejście do programowania aplikacji webowych, które pozwala na wykonywanie asynchronicznych zapytań do serwera bez konieczności przeładowania całej strony. Dzięki temu użytkownik ma płynniejsze i bardziej responsywne doświadczenie z aplikacją. W praktyce często stosuje się AJAX do ładowania danych z serwera w tle, co pozwala na dynamiczne aktualizowanie części strony, takie jak listy produktów, komentarze, czy wyniki wyszukiwania. Technologie związane z AJAX to m.in. XMLHttpRequest, Fetch API oraz często używane biblioteki jak jQuery, które upraszczają jego implementację. Standardy i dobre praktyki obejmują m.in. unikanie blokowania interfejsu użytkownika oraz zapewnienie bezpieczeństwa danych podczas przesyłania między klientem a serwerem. Z mojego doświadczenia, AJAX jest nieoceniony w tworzeniu nowoczesnych aplikacji webowych i znacząco zwiększa ich użyteczność.

Pytanie 15

W języku JavaScript następujący zapis: var napis1 = new napisy); ma na celu

A. stworzenie nowej klasy napis1
B. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
C. stworzenie instancji obiektu napis1 klasy napisy
D. wywołanie metody dla obiektu napisy
W podanym kodzie JavaScript mamy do czynienia z próbą utworzenia obiektu klasy 'napisy'. Operacja 'new' w JavaScript jest używana do instancjowania obiektów z funkcji konstrukcyjnych, które pełnią rolę klas. Przykład działania: jeśli mamy zdefiniowaną funkcję konstrukcyjną 'function napisy() { this.text = ''; }', to użycie 'var napis1 = new napisy();' stworzy nowy obiekt 'napis1', który będzie posiadał właściwość 'text'. Warto zwrócić uwagę, że 'napisy' musi być zdefiniowane jako funkcja konstrukcyjna, aby mogło być użyte w kontekście 'new'. Zrozumienie tego mechanizmu jest kluczowe w programowaniu obiektowym w JavaScript, gdzie klasy i obiekty odgrywają fundamentalną rolę w organizacji kodu. Aby lepiej zrozumieć działanie tego fragmentu, warto zapoznać się z dokumentacją dotyczącą obiektów i funkcji w JavaScript, co znajduje się w standardzie ECMAScript. Przykładowy kod ilustrujący tworzenie obiektu mógłby wyglądać tak: 'var napis1 = new napisy(); console.log(napis1.text);'.

Pytanie 16

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onselect="return dodaj()">oblicz</button>
B. <button onclick="return dodaj()">dodaj</button>
C. <button onclick="return oblicz()">dodaj</button>
D. <button onselect="return dodaj()">dodaj</button>
Wybór niewłaściwej odpowiedzi sugeruje pewne nieporozumienie związane z obsługą zdarzeń w JavaScript i jak są one wywoływane w kontekście przycisków. Wszystkie pozostałe odpowiedzi używają zdarzenia 'onselect' lub wywołują nieistniejącą funkcję 'oblicz'. Zdarzenie 'onselect' jest wyzwalane, gdy użytkownik zaznacza tekst w elemencie, co jest nieodpowiednie dla przycisku. Innymi słowy, 'onselect' nie jest odpowiednim zdarzeniem do obsługi kliknięcia przycisku. Co więcej, wywołanie funkcji 'oblicz' jest błędem, ponieważ nie istnieje taka funkcja zdefiniowana w skrypcie. Ta myląca odpowiedź może wynikać z niezrozumienia, jak zdarzenia są obsługiwane w JavaScript i jakie zdarzenia są odpowiednie dla różnych elementów. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają używanie odpowiednich zdarzeń dla różnych elementów i typów interakcji użytkownika.

Pytanie 17

W formularzu dane z pola input o typie number zostały przypisane do zmiennej a, a następnie przetwarzane w skrypcie JavaScript w następujący sposób:

var x = parseFloat(a);
Jaki typ będzie miała zmienna x?
A. napisowego
B. zmiennoprzecinkowego
C. liczbowego, całkowitego
D. NaN
Zmienna x będzie typu zmiennoprzecinkowego, ponieważ funkcja parseFloat() konwertuje wartość przekazaną jej jako argument na liczbę zmiennoprzecinkową. W przypadku, gdy zmienna a zawiera poprawną reprezentację liczby, np. '10.5' lub '3.14', parseFloat() zwróci odpowiednią wartość zmiennoprzecinkową. Dobrą praktyką jest zapewnienie, że wartość w a jest odpowiednio walidowana przed konwersją, aby uniknąć błędów i niepożądanych wyników. Zmiennoprzecinkowe dane mogą być szczególnie użyteczne w aplikacjach finansowych, graficznych czy inżynieryjnych, gdzie precyzyjne obliczenia są kluczowe. Ponadto, JavaScript automatycznie przekształca liczby całkowite do postaci zmiennoprzecinkowej, więc nawet jeśli a zawiera liczbę całkowitą, wynik w zmiennej x również będzie typem zmiennoprzecinkowym. Znajomość tego zachowania jest istotna dla programistów, aby skutecznie obsługiwać różnorodne operacje numeryczne.

Pytanie 18

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. myszki będzie zwolniony
B. myszki będzie wciśnięty
C. klawiatury będzie wciśnięty
D. klawiatury będzie zwolniony
Odpowiedź, że zdarzenie onKeydown jest wywoływane, gdy klawisz klawiatury został naciśnięty, jest prawidłowa, ponieważ onKeydown jest zdarzeniem, które reaguje na pierwszą interakcję użytkownika z klawiaturą. W praktyce oznacza to, że gdy użytkownik naciśnie dowolny klawisz na klawiaturze, np. literę, cyfrę lub klawisz funkcyjny, zdarzenie onKeydown zostanie wywołane. Jest to kluczowe w kontekście tworzenia interaktywnych aplikacji webowych, ponieważ pozwala programistom na obsługę wejścia użytkownika w czasie rzeczywistym. Na przykład, w aplikacji do edycji tekstu, można wykorzystać onKeydown do aktualizacji zawartości edytora na podstawie wprowadzanego tekstu, co zapewnia płynne doświadczenie użytkownika. Dobrym przykładem zastosowania tego zdarzenia jest również implementacja gier, w których ruchy postaci lub akcje są wykonywane w odpowiedzi na naciśnięcia klawiszy. W standardach W3C dotyczących dostępu i interakcji z użytkownikiem, zdarzenie onKeydown uwzględnia również kwestie dostępności, co jest istotne dla projektowania inkluzywnych aplikacji.

Pytanie 19

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 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. */
B. /* 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. */
C. /* 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. */
D. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i duż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 20

Fragment kodu HTML z JavaScript spowoduje, że po kliknię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 schowany
B. obraz2.png zastąpi obraz1.png
C. obraz1.png zastąpi obraz2.png
D. obraz2.png zostanie schowany
Poprawna odpowiedź dotyczy ukrycia obrazu obraz2.png poprzez jego identyfikację za pomocą unikalnego atrybutu id. W kodzie HTML każdy element może być zidentyfikowany przez atrybut id, co pozwala na bezpośrednią manipulację jego własnościami w JavaScript. Funkcja document.getElementById służy do wyszukiwania elementu o podanym id w strukturze DOM dokumentu. Następnie, używając stylowania CSS poprzez właściwość style, możliwe jest zmienienie wartości display na 'none', co skutkuje ukryciem elementu w przeglądarce. Taka technika jest często wykorzystywana w interaktywnych aplikacjach webowych, gdzie użytkownik musi mieć możliwość dynamicznego manipulowania elementami interfejsu. Praktyka ta jest zgodna ze standardami W3C i pozwala na tworzenie responsywnych, przyjaznych użytkownikowi aplikacji. Dobrym przykładem zastosowania jest tworzenie galeria obrazów, gdzie tylko wybrane zdjęcia są wyświetlane w danym momencie. Taka funkcjonalność sprzyja również poprawie czytelności strony, ponieważ użytkownik może ukrywać i odkrywać treści według własnych potrzeb. Zrozumienie tego mechanizmu jest kluczowe dla każdego, kto chce budować nowoczesne strony internetowe z użyciem HTML, CSS i JavaScript.

Pytanie 21

W języku JavaScript poniższy fragment funkcji ma na celu

wynik = 0;
for (i = 0; i < tab.length; i++) {
  wynik += tab[i];
}
A. obliczyć sumę wszystkich elementów tablicy
B. wprowadzić do każdego elementu tablicy bieżącą wartość zmiennej i
C. wyświetlić wszystkie elementy tablicy
D. dodać do każdego elementu tablicy ustaloną wartość
Funkcja w podanym fragmencie rzeczywiście ma na celu policzenie sumy wszystkich elementów tablicy. Przy inicjalizacji zmiennej 'wynik' na 0, kod iteruje przez każdy element tablicy 'tab' przy użyciu pętli for. W każdej iteracji do 'wynik' dodawana jest wartość bieżącego elementu tablicy, co prowadzi do skumulowania wszystkich wartości. Tego typu operacje są powszechnie stosowane w programowaniu, szczególnie w analizie danych, gdzie często zachodzi potrzeba obliczenia sumy, średniej lub innych statystyk na podstawie zebranych danych. Ważne jest również, aby pamiętać o typach danych w JavaScript – elementy tablicy powinny być liczbami, aby suma była poprawna. Zastosowanie tej techniki jest standardem w wielu algorytmach i jest fundamentalne dla zrozumienia bardziej zaawansowanych koncepcji, jak np. funkcje redukujące.

Pytanie 22

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

A. <p class="akapit">akapit4</p>
B. <p href="/akapit">akapit3</p>
C. <p>akapit</p>
D. <p id="akapit">akapit2</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 23

Określ wynik wykonania poniższego fragmentu kodu JavaScript.

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Wyświetlenie okna dialogowego z komunikatem "akapit"
B. Wstawienie akapitu na początku strony
C. Usunięcie akapitu z treści strony
D. Dodanie akapitu na samym końcu strony
Kod JavaScript, który tutaj widzisz, tworzy nowy element paragrafu (p) przy użyciu metody createElement. Potem ten nowy element dodaje się do dokumentu na końcu, przez appendChild do body. To wszystko dotyczy manipulacji DOM, co jest kluczowe w JavaScript. Zrozumienie tych operacji to naprawdę ważna sprawa, bo pozwala na tworzenie dynamicznych, interaktywnych stron internetowych. Dzięki createElement można w czasie rzeczywistym generować nowe elementy HTML, a appendChild pozwala je umieścić w wybranym miejscu na stronie. To są praktyki, które są standardem w dobrym kodowaniu i często wykorzystuje się je w nowoczesnych aplikacjach webowych. Manipulacja DOM to podstawowy temat w technologiach front-endowych i pozwala na zmiany w treści stron bez ich przeładowywania. Kiedy dobrze rozumiesz te techniki, możesz budować bardziej responsywne aplikacje, co teraz jest normą w branży.

Pytanie 24

Na listingu kodu JavaScript w wykropkowanej części definicji obiektu osoba należy wpisać kod, który prawidłowo obsłuży instrukcję osoba.j = "PL"; Który to będzie kod?

 var osoba = {
    imie: "Jan",
    jezyk: "EN",
    set j(nazwa) {  ...  }
};
A. this.jezyk = nazwa;
B. return this.j;
C. this.j = nazwa;
D. return this.jezyk;
Twoja odpowiedź jest poprawna. W pytaniu mamy do czynienia z obiektem 'osoba' w JavaScript, który posiada właściwości 'imie' i 'jezyk'. Właściwość 'jezyk' jest obsługiwana przez setter 'set j(nazwa)', którego zadaniem jest przypisanie wartości do tej właściwości. Instrukcja 'osoba.j = "PL";' oznacza, że chcemy ustawić wartość 'PL' dla właściwości 'jezyk'. Aby to osiągnąć, setter musi przypisać tę wartość do właściwości 'jezyk'. Dlatego poprawnym kodem jest 'this.jezyk = nazwa;'. 'This' w tym kontekście odnosi się do obiektu 'osoba', a 'nazwa' to wartość, którą chcemy przypisać do właściwości 'jezyk'. To przykład dobrej praktyki zarządzania stanem obiektu w JavaScript, a także dobrej praktyki tworzenia setterów, które są integralną częścią programowania zorientowanego obiektowo.

Pytanie 25

Po wykonaniu fragmentu kodu HTML i JavaScript na stronie będzie wyświetlony obraz z pliku

<img id="obraz" src="kol1.jpg">
<button id="przycisk">Przycisk</button>

<script>
    document.getElementById("obraz").src = "kol2.jpg";
</script>
A. kol1.jpg, który może być zmieniony na kol2.jpg po wciśnięciu przycisku.
B. kol2.jpg
C. kol2.jpg, który może być zmieniony na kol1.jpg po wciśnięciu przycisku.
D. kol1.jpg
Dobra robota, zgadłeś! W tym skrypcie JavaScript używamy metody getElementById, żeby znaleźć obraz na stronie o identyfikatorze 'obraz'. Później zmieniamy jego atrybut 'src' na 'kol2.jpg'. To znaczy, że po uruchomieniu tego kodu wyświetli się właśnie ten obrazek. Fajnie jest to zrozumieć, bo pokazuje, jak można dynamicznie zmieniać rzeczy na stronie za pomocą JavaScript. Takie umiejętności są super ważne, gdy tworzymy interaktywne strony, które reagują na to, co robi użytkownik. Na przykład, można by zmienić obraz, gdy ktoś najedzie na niego myszką albo kliknie przycisk. Pamiętaj też, żeby zawsze pomyśleć o dostępności – jeśli obraz ma jakieś ważne informacje, warto dodać alternatywne opisy dla osób korzystających z czytników ekranu.

Pytanie 26

Wyrażenie JavaScript:

document.write(5==='5');
Co zostanie wyświetlone?
A. false
B. 0
C. true
D. 1
Odpowiedzi, które wybrałeś, jak '0', 'true' i '1', pokazują, że mogło dojść do pewnych nieporozumień w zrozumieniu, jak działają operatory porównania w JavaScript. Na przykład '0' może sugerować, że sądzisz, że wynik jest liczbowy, a nie logiczny. Warto pamiętać, że w JavaScript liczby i wartości logiczne to różne typy danych. '0' oznacza fałsz, więc to nie jest właściwy wynik. Odpowiedź 'true' świadczy o błędnym przekonaniu, że porównywane wartości są takie same, co nie jest zgodne z tym, co robi '===' . Natomiast odpowiedź '1' sugeruje, że mogłeś pomylić wynik porównania z kodem prawdy w formie 1, co zdarza się w niektórych językach, ale w JavaScript to nie działa. Kluczowe jest to, że '===' porównuje zarówno wartości, jak i typy, więc porównując liczbę i ciąg znaków, dostajemy 'false'. W JavaScript mamy 'true' i 'false', a porównania powinny uwzględniać typy danych, żeby uniknąć zamieszania. Fajnie byłoby, gdybyś zgłębił temat typów danych w JavaScript i sam spróbował różnych porównań, żeby lepiej to ogarnąć.

Pytanie 27

Rodzaj zmiennej w języku JavaScript

A. nie istnieje.
B. jest tylko jeden rodzaj.
C. ma miejsce poprzez przypisanie wartości.
D. musi być zadeklarowany na początku skryptu.
W języku JavaScript typ zmiennej jest dynamicznie określany na podstawie wartości przypisanej do tej zmiennej. Oznacza to, że nie ma potrzeby deklarowania typu zmiennej przed jej użyciem. Na przykład, możemy stworzyć zmienną 'x' i przypisać jej wartość liczbową: 'let x = 10;'. W późniejszym czasie możemy przypisać do niej wartość tekstową: 'x = 'Hello!';' bez jakichkolwiek błędów. To zjawisko wpisuje się w koncepcję typowania dynamicznego, która jest cechą języków takich jak JavaScript. Dzięki temu programiści mogą pisać bardziej elastyczny kod, co jest szczególnie przydatne w projektach, gdzie wymagania mogą się szybko zmieniać. Praktyczne zastosowanie tego podejścia w JavaScript pozwala na tworzenie funkcji, które mogą przyjmować różne typy danych, co zwiększa ich uniwersalność i użyteczność. Warto również zauważyć, że dobrym zwyczajem jest stosowanie odpowiednich konwencji nazw zmiennych oraz ich dokumentowanie, aby zwiększyć czytelność kodu w projektach zespołowych.

Pytanie 28

Wskaź poprawną definicję funkcji w języku JavaScript.

A. new nazwa_funkcji(argumenty) {instrukcje;}
B. nazwa_funkcji(argumenty) {instrukcje;}
C. function nazwa_funkcji(argumenty) {instrukcje;}
D. typ_funkcji nazwa_funkcji(argumenty) {instrukcje;}
Poprawna definicja funkcji w języku JavaScript to 'function nazwa_funkcji(argumenty) {instrukcje;}'. Kluczowe słowo 'function' wskazuje, że definiujemy nową funkcję, co jest standardową praktyką w programowaniu w JavaScript. Funkcja może przyjmować argumenty, które są zmiennymi przekazywanymi do niej podczas wywołania. Możemy zdefiniować dowolną liczbę argumentów, a ich typy nie są ściśle określone, co zapewnia dużą elastyczność. Wewnątrz nawiasów klamrowych {} umieszczamy instrukcje, które będą wykonane, gdy funkcja zostanie wywołana. Przykładem może być funkcja, która dodaje dwie liczby: 'function dodaj(a, b) { return a + b; }'. Możliwość definiowania funkcji pozwala na organizację kodu, ponowne wykorzystanie oraz modularność, a to wszystko jest zgodne z zasadami programowania obiektowego i funkcjonalnego, które są fundamentem JavaScript. Warto również zauważyć, że zgodnie z ECMAScript, standardem definiującym JavaScript, ta składnia jest właściwa i szeroko stosowana w praktyce programistycznej.

Pytanie 29

Gdzie w dokumencie HTML mogą być umieszczane fragmenty kodu JavaScript?

A. tak w sekcji <head>, jak i <body>, w znaczniku <java>
B. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
C. wyłącznie w sekcji <body>, w znaczniku <java>
D. jedynie w sekcji <head>, w znaczniku <script>
Wiesz, wstawianie kodu JavaScript do dokumentu HTML powinno odbywać się w znaczniku <script>. Możesz go umieścić zarówno w <head>, jak i w <body>. Często wrzucamy skrypty do <head>, bo chcemy, żeby załadowały się przed wyświetleniem treści. To się przydaje, gdy skrypty zmieniają coś w DOM. Z drugiej strony, jak wrzucisz je do <body>, to skrypty będą ładowane po całej treści, co może przyspieszyć to, co widzi użytkownik. Na przykład, jeśli tworzysz coś interaktywnego, lepiej umieścić skrypty na dole, żeby nie blokować renderowania. Dobrze jest też pamiętać o atrybucie 'defer' w <script>, bo dzięki temu skrypt się ściąga równolegle z innymi rzeczami, ale działa dopiero jak cały dokument jest załadowany. To ważne, żeby strony działały sprawnie i były przyjemne w użytkowaniu.

Pytanie 30

Wskaż zapis warunku w języku JavaScript, który ma na celu sprawdzenie, czy spełniony jest przynajmniej jeden z poniższych przypadków:
1) dowolna liczba naturalna a jest liczbą trzycyfrową
2) dowolna liczba całkowita b ma wartość ujemną

A. ((a > 99) && (a < 1000)) || (b < 0)
B. ((a > 99) && (a < 1000)) && (b < 0)
C. ((a > 99) || (a < 1000)) || (b < 0)
D. ((a > 99) || (a < 1000)) && (b < 0)
Odpowiedź ((a > 99) && (a < 1000)) || (b < 0) jest poprawna, ponieważ spełnia wymagania dotyczące sprawdzenia dwóch warunków. Pierwsza część warunku, czyli (a > 99) && (a < 1000), precyzyjnie weryfikuje, czy liczba 'a' jest trzycyfrowa. Wartości, które spełniają ten warunek, to liczby od 100 do 999. Druga część warunku, czyli (b < 0), efektywnie sprawdza, czy liczba 'b' jest liczbą ujemną. Połączenie tych dwóch warunków za pomocą operatora logicznego OR (||) oznacza, że wystarczy, iż jeden z nich będzie prawdziwy, aby cały warunek został uznany za spełniony. To podejście jest zgodne z dobrymi praktykami programowania, gdzie klarowność i zwięzłość kodu są kluczowe, co ułatwia jego późniejsze utrzymanie. W zastosowaniach praktycznych, taki warunek mógłby być użyty w walidacji danych wejściowych, na przykład w formularzach, gdzie użytkownicy wprowadzają różne wartości, a program musi zapewnić, że przynajmniej jeden z warunków jest spełniony.

Pytanie 31

Jak określa się metodę umożliwiającą nawiązanie asynchronicznego połączenia klienta z serwerem i prowadzenie komunikacji bez konieczności przeładowania całej strony WWW?

A. AJAX
B. PHP
C. XML
D. VBScript
AJAX (Asynchronous JavaScript and XML) to technika używana w projektowaniu aplikacji internetowych, która umożliwia asynchroniczną komunikację między klientem a serwerem. Główną zaletą AJAX jest to, że pozwala na zaktualizowanie części strony internetowej bez potrzeby jej przeładowywania. Dzięki temu użytkownicy mogą interaktywnie korzystać z aplikacji, co poprawia doświadczenia użytkownika i zwiększa wydajność strony. Przykładem zastosowania AJAX może być dynamiczne ładowanie danych w formularzach, aktualizacja treści przy użyciu przycisków (np. 'Zobacz więcej'), czy też autouzupełnianie w polach tekstowych. Wykorzystując AJAX, deweloperzy mogą również minimalizować ruch sieciowy, ponieważ tylko zmienione lub nowe dane są przesyłane między serwerem a klientem. Technika ta jest zgodna z wieloma standardami webowymi, w tym z RESTful API, co czyni ją kluczowym elementem nowoczesnych architektur webowych. Warto zaznaczyć, że AJAX jest fundamentem dla wielu frameworków JavaScript, takich jak jQuery, Angular czy React, które jeszcze bardziej ułatwiają jego implementację.

Pytanie 32

Elementem odpowiadającym imieniu Agata w zaprezentowanej tablicy JavaScript jest:

var Imiona = new Array('Anna','Joanna','Monika','Agata');
A. Imiona['Agata'];
B. Imiona[4];
C. Imiona[Agata];
D. Imiona[3];
Poprawna odpowiedź to Imiona[3], ponieważ w JavaScript indeksowanie tablicy zaczyna się od zera. Oznacza to, że pierwszy element tablicy Imiona to 'Anna' (Imiona[0]), drugi to 'Joanna' (Imiona[1]), trzeci to 'Monika' (Imiona[2]), a czwarty to 'Agata' (Imiona[3]). W kontekście programowania w JavaScript ważne jest, aby znać zasady indeksowania, co jest szczególnie istotne przy pracy z tablicami, ponieważ niewłaściwe indeksowanie może prowadzić do błędów, takich jak undefined. W praktyce, jeżeli chcemy uzyskać dostęp do konkretnego elementu tablicy, musimy użyć odpowiedniego indeksu. Ponadto, korzystanie z tablic w JavaScript jest powszechną praktyką, a zrozumienie ich mechanizmu pozwala na efektywne operowanie danymi. Należy również pamiętać o dobrych praktykach w programowaniu, takich jak stosowanie opisowych nazw zmiennych oraz komentowanie kodu, co zwiększa jego czytelność i zrozumienie dla innych programistów.

Pytanie 33

W języku JavaScript, element został uzyskany przy pomocy metody getElementById. Jaką właściwość należy zastosować, aby zmienić zawartość tego elementu?

A. innerBody
B. HTML
C. Body
D. innerHTML
Właściwość innerHTML jest kluczowym elementem w manipulacji DOM (Document Object Model) w JavaScript. Umożliwia ona programistom modyfikację zawartości HTML danego elementu. Po pobraniu elementu za pomocą metody getElementById, można zmienić jego wewnętrzną zawartość, przypisując nowy tekst lub kod HTML do innerHTML. Na przykład, jeśli mamy element o id 'example', jego zawartość można zmienić w ten sposób: document.getElementById('example').innerHTML = '<p>Nowa zawartość</p>'; To podejście jest powszechnie stosowane w dynamicznej aktualizacji treści stron internetowych, co jest szczególnie przydatne w aplikacjach jednostronicowych (SPA) oraz przy tworzeniu interaktywnych komponentów użytkownika. Warto również zauważyć, że używanie innerHTML wiąże się z pewnymi zagrożeniami, takimi jak wstrzykiwanie kodu (XSS), dlatego zawsze powinno się dbać o walidację i sanitację wprowadzanych danych. W praktyce, aby zwiększyć bezpieczeństwo aplikacji, można korzystać z innych metod manipulacji DOM, takich jak textContent lub createElement, które nie interpretują kodu HTML.

Pytanie 34

Dany fragment kodu ilustruje składnię danego języka

Ilustracja do pytania
A. PHP
B. C#
C. C
D. JavaScript
Kod przedstawiony w pytaniu jest napisany w języku PHP który jest popularnym językiem skryptowym stosowanym na serwerach do generowania dynamicznych stron internetowych Zaczyna się od znacznika otwierającego '<?php' co jasno wskazuje na PHP W kodzie użyte są funkcje takie jak file_get_contents fopen fwrite i fclose które są typowe dla PHP i służą do manipulacji plikami Funkcja file_get_contents służy do odczytywania zawartości pliku co jest niezbędne do pobrania aktualnej wartości zmiennej Silosc Następnie zmienna ta jest inkrementowana aby zwiększyć jej wartość o jeden co jest powszechnie stosowane w licznikach odwiedzin stron internetowych PHP jako język skryptowy pozwala na łatwe manipulowanie danymi serwera a także na integrację z bazami danych i szeroką gamę funkcji sieciowych i narzędzi co czyni go jednym z najczęściej używanych języków do tworzenia aplikacji webowych Dobrym standardem jest stosowanie PHP w przypadku gdy potrzebne jest dynamiczne generowanie treści oraz zarządzanie danymi użytkowników

Pytanie 35

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

A. kompilowanie
B. przetwarzanie na kod maszynowy
C. interpretowanie
D. debugowanie
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 36

W skrypcie JavaScript operatory: ||, && zaliczane są do kategorii operatorów

A. przypisania
B. arytmetycznych
C. logicznymi
D. bitowych
Odpowiedź 'logicznym' jest poprawna, ponieważ w języku JavaScript operatory || (logiczne OR) i && (logiczne AND) są klasyfikowane jako operatory logiczne. Te operatory służą do wykonywania operacji na wartościach logicznych (prawda/fałsz). Użycie operatora && powoduje, że wyrażenie zwraca prawdę tylko wtedy, gdy oba operandy są prawdziwe. Z kolei operator || zwraca prawdę, jeśli przynajmniej jeden operand jest prawdziwy. Przykładem ich zastosowania może być warunkowe wykonywanie kodu, np. w instrukcjach if, gdzie możemy sprawdzić, czy spełnione są określone warunki. Standardowe praktyki programistyczne zalecają używanie tych operatorów do efektywnego zarządzania logiką programów, co zwiększa ich czytelność i umożliwia łatwiejszą konserwację. Ważne jest także zrozumienie, że operatory te wykonują krótką ocenę (short-circuit evaluation), co oznacza, że ​​nie obliczają drugiego operandu, jeśli pierwszy już decyduje o wyniku. Dzięki tym właściwościom, operatory logiczne są kluczowym elementem wszelkich aplikacji programistycznych, które potrzebują podejmować decyzje w oparciu o różne warunki.

Pytanie 37

Język JavaScrypt umożliwia obsługę

A. wysyłania ciastek z identycznymi informacjami do wielu klientów strony
B. obiektów DOM
C. funkcji wirtualnych
D. klas abstrakcyjnych
Obsługa funkcji wirtualnych nie jest częścią języka JavaScript, ponieważ ten język nie obsługuje typów i mechanizmów programowania obiektowego w sposób, w jaki robią to inne języki, takie jak C++ czy Java. JavaScript nie posiada koncepcji 'wirtualnych funkcji', które są charakterystyczne dla języków, które implementują mechanizmy dziedziczenia oparte na klasach. W JavaScript, programowanie obiektowe opiera się na prototypach, co oznacza, że obiekty mogą dziedziczyć właściwości i metody bez użycia wirtualnych funkcji, co czyni to pojęcie nieadekwatnym w kontekście tego języka. Ponadto, klasa abstrakcyjna jest także pojęciem, które jest źle zrozumiane w kontekście JavaScript. W rzeczywistości, JavaScript nie wspiera klas abstrakcyjnych w tradycyjnym sensie znanym z języków statycznie typowanych. Wprowadzenie klas w ECMAScript 6 dodało nową składnię, ale nie zmieniło fundamentalnej natury języka. JavaScript nie wymusza implementacji metod w klasach pochodnych, co jest kluczowym aspektem klas abstrakcyjnych. Wreszcie, kwestia wysyłania ciastek z tą samą informacją do wielu klientów stron internetowych odnosi się bardziej do mechanizmów serwerowych i zarządzania sesjami niż do samego języka JavaScript. JavaScript działa głównie po stronie klienta, a ciasteczka są zarządzane przez przeglądarki internetowe, gdzie mogą być ustalane przez skrypty, ale samo wysyłanie ciasteczek do klientów nie jest bezpośrednio związane z jego funkcjonalnością. Te aspekty techniczne ukazują, dlaczego podane odpowiedzi nie są poprawne w kontekście pytania o obsługę JavaScript.

Pytanie 38

Jakie zadania programistyczne mogą być realizowane wyłącznie po stronie klienta w przeglądarce?

A. Weryfikacja hasła użytkownika w bazie danych powiązanej z aplikacją internetową
B. Bezpieczne wyświetlenie spersonalizowanej treści strony na podstawie uprawnień użytkownika aplikacji
C. Zapis danych z formularza w bazie danych związanej z aplikacją internetową
D. Weryfikacja danych wprowadzanych do pola tekstowego w czasie rzeczywistym
Wszystkie pozostałe zadania wymagają interakcji z serwerem, co czyni je niewykonalnymi po stronie klienta. Bezpieczne wyświetlenie personalizowanej zawartości strony zgodnie z prawami użytkownika aplikacji wiąże się z koniecznością weryfikacji danych na serwerze. Ta operacja wymaga zrozumienia roli serwera w kontekście bezpieczeństwa i autoryzacji, ponieważ każdy użytkownik może mieć różne uprawnienia do przeglądania zawartości. Zapisanie danych pobranych z formularza w bazie danych również odbywa się po stronie serwera, gdzie następuje walidacja i przetwarzanie danych. Bazy danych są złożonymi systemami, które zapewniają integralność i bezpieczeństwo, a ich użycie wymaga odpowiednich zapytań SQL, które są wykonywane na serwerze. Podobnie, sprawdzenie hasła użytkownika w bazie danych wymaga komunikacji z serwerem, gdzie hasło jest porównywane z zapisanym hasłem w sposób bezpieczny, zazwyczaj poprzez haszowanie. To podejście jest zgodne z najlepszymi praktykami w zakresie bezpieczeństwa aplikacji webowych, a wszelkie operacje dotyczące integralności danych powinny być wykonywane w środowisku serwerowym, aby zapobiec potencjalnym atakom, takim jak SQL Injection. Właściwe zrozumienie rozróżnienia między operacjami po stronie klienta i serwera jest kluczowe dla tworzenia wydajnych, bezpiecznych aplikacji internetowych.

Pytanie 39

Który fragment kodu stanowi zamiennik dla kodu umieszczonego w ramce?

Ilustracja do pytania
A. C
B. D
C. B
D. A
Odpowiedzi B i D są nieprawidłowe ponieważ ignorują kluczową część logiki oryginalnego kodu mianowicie filtrację parzystych liczb. Odpowiedź B iteruje przez wszystkie liczby od 1 do 55 wypisując je wszystkie bez wyjątku co diametralnie odbiega od zamierzonego wyniku kodu źródłowego. Odpowiedź D jest identyczna z B z tym że format zapisu jest nieco odmienny nie ma to jednak wpływu na logikę działania co czyni ją również błędną. Odpowiedź C inicjuje pętlę od 2 i inkrementuje x o 2 co teoretycznie powinno zbliżyć się do rozwiązania jednak zakres iteracji kończy się na 56 co wykracza poza zadany limit 55 oraz wypisuje nieistniejącą w oryginalnej pętli dodatkową liczbę co jest błędne. Wybory te mogą wynikać z niewłaściwego zrozumienia zakresu pętli lub metody przeskakiwania wartości co jest częstym błędem przy interpretacji pętli iteracyjnych. Kluczowe jest zrozumienie jak zastosowana logika i zakres wpływają na wynik końcowy oraz jak można optymalnie odwzorować te zasady w alternatywnym kodzie.

Pytanie 40

W języku JavaScript należy sformułować warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (również nie zerową) lub gdy zmienna b będzie liczbą mieszczącą się w przedziale od 10 do 100, włącznie. Wyrażenie logiczne zastosowane w tym warunku powinno mieć 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))
Odpowiedź (a>0) || ((b>=10) && (b<=100)) jest poprawna, ponieważ precyzyjnie odwzorowuje wymagane warunki. Warunek logiczny składa się z dwóch głównych części. Pierwsza część, (a>0), sprawdza, czy zmienna a jest liczbą naturalną dodatnią. Liczby naturalne dodatnie to liczby całkowite większe od zera, co oznacza, że a musi być większe od zera, aby warunek był spełniony. Druga część warunku, ((b>=10) && (b<=100)), wymaga, aby zmienna b znajdowała się w przedziale od 10 do 100, włącznie z tymi wartościami. Zastosowanie operatora && w tej części oznacza, że obie nierówności muszą być spełnione jednocześnie. Operator || łączy te dwie części, co oznacza, że wystarczy spełnić jeden z warunków, aby cały wyrażenie logiczne zwróciło prawdę. Jest to zgodne z zasadami programowania, które wskazują na konieczność precyzyjnego definiowania warunków w celu uniknięcia niejasności. W praktyce takie wyrażenie jest niezwykle przydatne w sytuacjach, gdy konieczne jest weryfikowanie wartości zmiennych przed ich dalszym przetwarzaniem, co pozwala na zwiększenie bezpieczeństwa i stabilności aplikacji.