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: 6 maja 2026 13:59
  • Data zakończenia: 6 maja 2026 14:25

Egzamin zdany!

Wynik: 28/40 punktów (70,0%)

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Pochwal się swoim wynikiem!
Szczegółowe wyniki:
Pytanie 1

Naciśnięcie przycisku o nazwie "niebieski" spowoduje uruchomienie podanego kodu JavaScript. Jaki będzie rezultat jego działania?

Ilustracja do pytania
A. Zmiana koloru tekstu "i skrypt" na niebieski
B. Zmiana koloru tekstu "Przykładowy tekst i skrypt" na niebieski
C. Zmiana koloru tekstu "Przykładowy tekst" na niebieski
D. Zmiana koloru przycisku na niebieski
W analizowanym kodzie JavaScript celem operacji jest zmiana koloru tekstu przy użyciu funkcji changeColor. Funkcja ta została zaprojektowana do modyfikacji koloru tekstu konkretnego elementu HTML z identyfikatorem 'para1'. Błędne interpretacje wynikały z nieprawidłowego rozumienia struktury kodu i mechanizmu działania funkcji. Jednym z częstych błędów myślowych jest przypuszczenie, że przycisk uruchamiający funkcję zmienia swój własny kolor, jednak w rzeczywistości funkcja modyfikuje tylko wskazany element za pomocą getElementById. Kolejna niepoprawna interpretacja dotyczyła modyfikacji tekstu 'i skrypt', który znajduje się w osobnym paragrafie bez id, przez co nie jest objęty zmianą koloru. Funkcja changeColor została zaprojektowana tak, aby modyfikować jedynie elem.style.color dla określonego elementu identycznego z parametrem id. Błędy w analizie tego kodu często wynikają z pomijania istotnych szczegółów oraz z niedokładnej interpretacji funkcji JavaScript. Ważne jest odpowiednie zrozumienie kontekstu działania funkcji oraz ich parametrów, co pozwala na uniknięcie takich pomyłek. W praktyce programistycznej, dokładne poznanie metod operujących na elementach DOM jest kluczowe dla tworzenia interaktywnych i dynamicznych stron internetowych.

Pytanie 2

Kod JavaScript ma za zadanie szukanie wartości maksymalnej w tablicy. Wskaż błąd występujący w skrypcie.

14      max = tablica[0];
15      for (j == 1; j < 9; j++) {
16          if (max <= tablica[j]) {
17              max = tablica[j];
18          };
19      };
20      document.write("Największy element tablicy to: " + max);
A. Zmienna max ma niewłaściwie przypisaną wartość w linii 14.
B. Warunek w linii 16 powinien być odwrócony.
C. Zastosowano operator porównania zamiast przypisania w linii 15.
D. Kod zapisany w linii 20 ma nieprawidłową składnię.
W tym fragmencie kodu kluczowy problem faktycznie leży w linii 15, gdzie użyto operatora porównania `==` zamiast operatora przypisania `=`. W pętli `for` pierwsza część ma inicjalizować zmienną sterującą, czyli w JavaScripcie poprawny zapis to `for (j = 1; j < 9; j++) { ... }`. Konstrukcja `j == 1` nie ustawia wartości zmiennej, tylko porównuje bieżącą wartość `j` z liczbą 1 i zwraca wynik logiczny `true` lub `false`. W efekcie interpreter próbuje potraktować wynik porównania jako wyrażenie inicjalizujące, co jest po prostu błędem składniowym i skrypt się nie wykona. Z mojego doświadczenia to bardzo częsty błąd: programista myśli o „ustawieniu” wartości i z przyzwyczajenia wpisuje podwójny znak równości. Dlatego w językach takich jak JavaScript, C, Java trzeba mocno pilnować rozróżnienia: `=` oznacza przypisanie, `==` porównanie wartości (a `===` porównanie wartości i typu). Cała reszta algorytmu wyszukiwania maksimum jest w porządku: najpierw przypisujemy do `max` pierwszy element tablicy, potem w pętli przechodzimy kolejne elementy i jeśli aktualny element jest większy lub równy `max`, to aktualizujemy zmienną `max`. Taki schemat jest klasycznym algorytmem liniowego wyszukiwania wartości maksymalnej. W praktyce, gdy piszesz kod produkcyjny, warto dodatkowo zadbać o deklarację zmiennych (`let j = 1;`, `let max = tablica[0];`) oraz używać długości tablicy (`j < tablica.length`) zamiast stałej liczby 9, żeby kod był odporny na zmiany i łatwiejszy w utrzymaniu. W narzędziach typu ESLint często jest też reguła wychwytująca przypadkowe użycie `==` tam, gdzie spodziewane jest `=`, właśnie po to, żeby unikać takich subtelnych, ale groźnych pomyłek.

Pytanie 3

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

A. stworzenie instancji obiektu napis1 klasy napisy
B. stworzenie nowej klasy napis1
C. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
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 4

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ę oraz przesyłanie danych w języku PHP
B. walidację w skrypcie PHP, a przesyłanie danych w JavaScript
C. walidację w języku JavaScript, a przesyłanie danych w skrypcie 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 5

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 onselect="return dodaj()">oblicz</button>
B. <button onclick="return obliczj()">dodaj</button>
C. <button onselect="return dodaj()">dodaj</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 6

Po wykonaniu poniższego kodu JavaScript, co będzie przechowywać zmienna str2?

var str1 = "JavaScript";
var str2 = str1.substring(2,6);
A. nvaScr
B. vaScri
C. vaSc
D. avaS
Wykorzystując metodę substring w JavaScript możemy wyodrębnić fragmenty łańcucha znaków bazując na indeksach początkowym i końcowym. Indeksowanie w JavaScript zaczyna się od zera co oznacza że pierwszy znak ma indeks 0 drugi 1 i tak dalej. W przypadku zmiennej str1 przechowującej łańcuch JavaScript wywołanie str1.substring(2 6) zwraca fragment zaczynający się od znaku o indeksie 2 do znaku o indeksie 5 włącznie. Oznacza to że metoda wybiera znaki od trzeciego do szóstego nie wliczając znaku o indeksie 6. W praktyce oznacza to że z napisu JavaScript wybierane są znaki aScr co tworzy łańcuch vaSc. Zrozumienie działania metody substring jest kluczowe przy pracy z łańcuchami znaków w JavaScript. Jest to standardowa metoda używana powszechnie do manipulacji tekstem co ma zastosowanie w wielu dziedzinach programowania frontendowego i backendowego. Ważne jest aby pamiętać o zeroindeksowaniu co pozwala uniknąć typowych błędów związanych z nieprawidłowym określeniem zakresu znaków.

Pytanie 7

W języku JavaScript funkcja matematyczna Math.pow() jest wykorzystywana do obliczania

A. potęgi liczby
B. przybliżonej wartości liczby
C. bezwzględnej wartości liczby
D. pierwiastka kwadratowego z liczby
Funkcja Math.pow() w języku JavaScript służy do obliczania potęgi liczby, co oznacza, że zwraca wynik mnożenia danej liczby przez siebie określoną liczbę razy. Jej składnia to Math.pow(base, exponent), gdzie 'base' to liczba, którą chcemy podnieść do potęgi, a 'exponent' to wykładnik potęgi. Przykładowo, Math.pow(2, 3) zwróci 8, ponieważ 2^3=2*2*2=8. Użycie tej funkcji jest niezwykle powszechne w programowaniu, zwłaszcza w obliczeniach matematycznych, grafice komputerowej oraz w algorytmach naukowych. Zastosowanie Math.pow() jest zgodne z najlepszymi praktykami, ponieważ pozwala na klarowność i czytelność kodu. Warto dodać, że w ES6 możemy również używać operatora potęgowania **, co jest syntaktycznie prostsze i bardziej intuicyjne, np. 2 ** 3 również da nam 8.

Pytanie 8

Która metoda obiektu location w języku JavaScript pozwala na zamianę aktualnego dokumentu na dokument z adresu podanego w parametrze metody?

A. close();
B. open();
C. reaload();
D. replace();
Metoda replace() obiektu location w JavaScript jest kluczowym narzędziem umożliwiającym zastąpienie bieżącego dokumentu nowym dokumentem wskazywanym przez zdefiniowany adres URL. Kiedy używamy location.replace(url), przeglądarka ładuje nowy dokument z podanego adresu, a bieżąca strona nie pozostaje w historii przeglądania, co oznacza, że użytkownik nie może wrócić do niej za pomocą przycisku "wstecz". Jest to szczególnie użyteczne w scenariuszach, gdy chcemy uniknąć zbędnego gromadzenia historii, na przykład w aplikacjach jednoskalowych (SPA), gdzie nawigacja pomiędzy różnymi widokami powinna być płynna. Przykładowo, po zalogowaniu użytkownika, można przekierować go na stronę główną aplikacji, używając location.replace('/home'). Warto również wspomnieć, że stosowanie tej metody jest zgodne z najlepszymi praktykami w zakresie UX, gdyż pozwala na lepsze zarządzanie historią przeglądarki, co może poprawić doświadczenia użytkownika.

Pytanie 9

Aby wykorzystać skrypt znajdujący się w pliku przyklad.js, konieczne jest połączenie go ze stroną przy użyciu kodu

A. <script src="przyklad.js"></script>
B. <link rel="script" href="przyklad.js">
C. <script link="przyklad.js"></script>
D. <script>przyklad.js</script>
Odpowiedź <script src="przyklad.js"></script> jest naprawdę na miejscu, bo użycie atrybutu 'src' w znaczniku <script> to taki standardowy sposób dołączania zewnętrznych skryptów JS do HTML-a. Atrybut 'src' mówi przeglądarce, gdzie znaleźć ten skrypt, więc może go załadować i wykonać. Dzięki temu, skrypt z pliku 'przyklad.js' wchodzi w interakcję ze stroną i może dodawać różne funkcje, jak na przykład reagowanie na działania użytkownika czy manipulowanie elementami na stronie. Pamiętaj, że najlepiej dołączać skrypty na końcu dokumentu, zaraz przed </body>, bo wtedy cała zawartość strony ładuje się najpierw. Warto też pomyśleć o atrybucie 'defer' lub 'async', żeby lepiej zoptymalizować ładowanie skryptów i nie blokować renderowania strony. Na przykład, <script src="przyklad.js" defer></script> pozwoli na asynchroniczne ładowanie, co z pewnością poprawia wydajność.

Pytanie 10

W sklepie z farbami obowiązuje określony sposób obliczania kosztu farby: dla koloru niebieskiego i zielonego przy pojemności 2 litry cena farby wynosi cena bazowa + 20%. Wyrażenie logiczne w języku JavaScript, które weryfikuje tę zasadę, ma formę

A. (kolor == 'niebieski' || kolor == 'zielony') && pojemnosc == 2
B. (kolor = 'niebieski' || kolor = 'zielony') || pojemnosc = 2
C. kolor = 'niebieski' || kolor = 'zielony' && pojemnosc = 2
D. kolor == 'niebieski' && kolor == 'zielony' && pojemnosc == 2
Analizując niepoprawne odpowiedzi, można zauważyć kilka powszechnych błędów, które prowadzą do mylnych wniosków. Przede wszystkim, użycie operatora '=' zamiast '==' jest fundamentalnym błędem w kontekście języka JavaScript. Operator '=' służy do przypisania wartości, podczas gdy '==' jest operatorem porównania, który sprawdza, czy dwie wartości są sobie równe. Zastosowanie '=' w warunkach logicznych prowadzi do nieprawidłowego działania warunków, ponieważ zamiast porównania wykonujemy przypisanie, co zazwyczaj skutkuje zawsze prawdziwym wynikiem. Ponadto, użycie operatora '&&' w przypadku kolorów w odpowiedzi, która stwierdza, że kolor jest jednocześnie 'niebieski' i 'zielony', jest logicznie niemożliwe, ponieważ jedna zmienna nie może przyjmować dwóch różnych wartości jednocześnie. Tego typu niepoprawne podejścia mogą prowadzić do niezamierzonych wyników w kodzie, co jest sprzeczne z podstawowymi zasadami programowania, takimi jak zasada jedności odpowiedzialności. Kluczowe jest również zrozumienie, że warunki powinny być jasno sformułowane, aby kod był zarówno funkcjonalny, jak i łatwy do zrozumienia dla innych programistów. Dobre praktyki programistyczne wskazują na konieczność stosowania dobrze zdefiniowanych i jednoznacznych warunków, co znacznie ułatwia dalszy rozwój i konserwację kodu.

Pytanie 11

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. myszki został zwolniony
B. myszki został naciśnięty
C. klawiatury został zwolniony
D. klawiatury został naciśnięty
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 12

Kod JavaScript aktywowany przez kliknięcie przycisku ma na celu ``` ```

A. pokazać obraz2.gif obok obraz1.gif
B. zmienić styl obrazu o id i1
C. ukryć obraz2.gif
D. zamienić obraz1.gif na obraz2.gif
Kod JavaScript w przedstawionym przykładzie został zaprogramowany w celu zamiany źródła obrazu na nowe po naciśnięciu przycisku. Gdy użytkownik kliknie na przycisk, wywołuje on funkcję, która zmienia atrybut 'src' elementu <img> z 'obraz1.gif' na 'obraz2.gif'. Jest to typowy sposób manipulacji elementami DOM w JavaScript, co jest fundamentalnym elementem programowania interakcji na stronach internetowych. Takie podejście jest zgodne z najlepszymi praktykami w zakresie programowania front-end, ponieważ pozwala na dynamiczne zmiany na stronie bez konieczności przeładowania całej strony. Przykładem praktycznego zastosowania może być użycie tego typu kodu w aplikacjach webowych, gdzie użytkownik może interaktywnie zmieniać widok, na przykład w galeriach zdjęć, grach przeglądarkowych czy aplikacjach do nauki. Zrozumienie tej techniki jest kluczowe dla każdego programisty front-end, ponieważ efektywne wykorzystanie JavaScript do manipulacji DOM jest jednym z podstawowych narzędzi w budowie nowoczesnych aplikacji webowych.

Pytanie 13

Na stronie internetowej znajduje się formularz, do którego trzeba zaprogramować następujące funkcje:
– walidacja: podczas wypełniania formularza na bieżąco jest kontrolowana poprawność danych
– przesyłanie danych: po wypełnieniu formularza i jego zatwierdzeniu informacje są przesyłane do bazy danych na serwerze
Aby zrealizować tę funkcjonalność w możliwie 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ę i przesyłanie danych w języku JavaScript
D. walidację i przesyłanie danych w języku PHP
Walidacja w języku JavaScript jest kluczowym elementem tworzenia interaktywnych formularzy internetowych, ponieważ pozwala na sprawdzenie poprawności danych w czasie rzeczywistym, zanim użytkownik prześle formularz na serwer. Dzięki temu użytkownik otrzymuje natychmiastową informację zwrotną i może poprawić ewentualne błędy, co znacząco poprawia doświadczenie użytkownika. Typowe przykłady walidacji obejmują sprawdzanie, czy pola nie są puste, czy wprowadzone dane odpowiadają oczekiwanemu formatowi (np. adres e-mail czy numer telefonu). Po zatwierdzeniu formularza, przesyłanie danych do bazy danych powinno odbywać się przez skrypt PHP, który efektywnie obsługuje komunikację z serwerem i umożliwia zapis danych w bazie. PHP jest powszechnie stosowany w backendzie, co czyni go idealnym wyborem do przetwarzania i przechowywania danych. Przy takiej architekturze aplikacji webowej korzystamy z dobrych praktyk, takich jak oddzielenie logiki frontendowej od backendowej, co zwiększa bezpieczeństwo oraz łatwość w utrzymaniu aplikacji. Ponadto, zastosowanie AJAX w JavaScript do asynchronicznego przesyłania danych bez przeładowania strony stanowi dodatkowy atut, który poprawia płynność działania aplikacji.

Pytanie 14

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

A. łańcuch znaków
B. logiczy
C. enumeracyjny
D. numeryczny
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 15

W przedstawionym kodzie JavaScript, który został ponumerowany dla przejrzystości, występuje błąd uniemożliwiający wyświetlenie jakiegokolwiek komunikatu po uruchomieniu. Jak można go naprawić?

1  if(a < b)
2      document.write(a);
3      document.write("jest mniejsze");
4  else
5      document.write(b);
6      document.write("jest mniejsze");
A. zmienić znaki cudzysłowu na apostrof w liniach 3 i 6, np. 'jest mniejsze'
B. wprowadzić nawiasy klamrowe w sekcji if i else
C. umieścić zmienne a i b w cudzysłowie w liniach 2 i 5
D. dodać znak $ przed nazwami zmiennych
Odpowiedź o wstawieniu nawiasów klamrowych do sekcji if oraz else jest prawidłowa, ponieważ w JavaScript, gdy warunek if lub else obejmuje więcej niż jedną instrukcję, należy użyć nawiasów klamrowych, aby zgrupować te instrukcje. W przeciwnym razie, język traktuje jako część bloku kodu tylko pierwszą instrukcję. W omawianym kodzie, bez nawiasów klamrowych, tylko pierwsze wywołanie document.write w każdej z sekcji jest wykonywane, co skutkuje brakiem komunikatu w przypadku, gdy warunek jest spełniony. Przykładowo, poprawny kod powinien wyglądać tak: if (a < b) { document.write(a); document.write('jest mniejsze'); } else { document.write(b); document.write('jest mniejsze'); }. Nawiasy klamrowe są standardową praktyką, która poprawia czytelność kodu oraz ułatwia jego modyfikację w przyszłości, co jest zgodne z zasadami dobrego programowania.

Pytanie 16

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

A. <p class="akapit">akapit4</p>
B. <p id="akapit">akapit2</p>
C. <p>akapit</p>
D. <p href="/akapit">akapit3</p>
Metoda getElementsByClassName('akapit') w JavaScript jest metodą DOM, która zwraca kolekcję wszystkich elementów w dokumencie HTML, które mają przypisaną określoną klasę. W tym przypadku interesuje nas klasa 'akapit'. Poprawna odpowiedź to <p class="akapit">akapit4</p>, ponieważ ten akapit ma atrybut class ustawiony na 'akapit'. Zastosowanie klasy w HTML jest zgodne z najlepszymi praktykami programistycznymi, ponieważ pozwala na łatwe stylowanie i manipulowanie grupą elementów za pomocą CSS i JavaScript. Na przykład, jeśli chcemy zmienić kolor tekstu wszystkich akapitów z klasą 'akapit', możemy to zrobić jednym poleceniem w CSS: .akapit { color: red; }. Ponadto, metoda getElementsByClassName zwraca tzw. HTMLCollection, co oznacza, że możemy iterować po tej kolekcji i modyfikować jej elementy. Użycie klas w ten sposób wspiera zasadę separacji treści od prezentacji, co jest kluczowe w nowoczesnym podejściu do tworzenia stron internetowych.

Pytanie 17

W JavaScript wynik operacji przyjmuje wartość NaN, jeśli skrypt próbował wykonać

A. funkcję parseFloat zamiast parseInt na zmiennej typu liczbowego
B. funkcję sprawdzającą długość napisu, a zawartość zmiennej była liczbą
C. operację arytmetyczną, a zmienna miała postać napisu
D. operację arytmetyczną na dwóch zmiennych liczbowych dodatnich
Odpowiedzi, które nie są poprawne, można analizować z perspektywy ich logicznych i technicznych uzasadnień. W przypadku pierwszej sugestii, użycie funkcji parseFloat zamiast parseInt na zmiennej liczbowej nie prowadzi bezpośrednio do uzyskania wartości NaN, ponieważ obie funkcje są zaprojektowane do konwersji wartości tekstowych na liczby. Działanie parseFloat zwróci wartość liczbową, co pozwoli uniknąć błędu NaN. W konsekwencji, niezależnie od wyboru funkcji konwertującej, jeśli dane są poprawne, wynik nie będzie NaN. Kolejna niepoprawna odpowiedź odnosi się do przypadku, w którym działanie arytmetyczne jest wykonywane na dwóch zmiennych liczbowych dodatnich. W takim przypadku, jeśli obie zmienne są liczbami, wynik operacji arytmetycznej będzie również liczbą, a nie NaN. Ostatnia analiza dotyczy sytuacji, w której funkcja sprawdzająca długość napisu jest używana na zmiennej, która jest liczbą. Metoda ta, .length, działa na obiektach typu string i nie ma wpływu na zwracanie NaN, nawet jeśli wejściowe dane są liczbowe. Dlatego wszystkie te odpowiedzi nie są trafne w kontekście pytania dotyczącego pojawienia się wartości NaN w JavaScript.

Pytanie 18

Jakie wyrażenie logiczne powinno zostać użyte w języku JavaScript, aby przeprowadzić operacje wyłącznie na dowolnych liczbach ujemnych z zakresu 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)
Poprawna odpowiedź, (liczba >= -200) && (liczba < -100), jest zgodna z wymaganym zakresem liczb ujemnych. Wyrażenie to sprawdza, czy wartość zmiennej 'liczba' jest większa lub równa -200, a jednocześnie mniejsza niż -100. Oznacza to, że przyjmuje wszystkie liczby z przedziału, w tym -200, ale nie uwzględnia -100. To podejście jest zgodne z praktykami programowania, gdzie istotne jest dokładne definiowanie zakresów. W JavaScript stosowanie operatorów logicznych, takich jak &&, umożliwia precyzyjne warunkowanie wykonania kodu, co jest niezbędne do sprawnego zarządzania błędami oraz zwiększa czytelność kodu. Przykładowo, w kontekście walidacji danych, takie wyrażenie można wykorzystać do filtrowania nieprawidłowych wartości przed ich przetwarzaniem. Umożliwia to lepsze zarządzanie danymi oraz zapobiega błędom w aplikacjach. Zastosowanie tego wyrażenia w praktyce pokazuje, jak ważne jest precyzyjne formułowanie warunków, co jest kluczowym elementem skutecznego programowania.

Pytanie 19

W języku JavaScript zdefiniowano funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Prawidłowa forma wywołania tej funkcji, razem z przypisaniem jej wyniku, powinna wyglądać następująco

A. liczba_max(a, b, c) = wynik;
B. liczba_max(a, b, c);
C. var wynik = liczba_max(a, b, c);
D. liczba_max(a, b, c, wynik);
Prawidłowe wywołanie funkcji w języku JavaScript wymaga zrozumienia podstawowych zasad dotyczących przekazywania argumentów oraz przypisywania wartości. W kontekście podanych odpowiedzi, wiele z nich nie spełnia tych wymogów. Niewłaściwe przypisanie w postaci 'liczba_max(a, b, c, wynik);' sugeruje, że funkcja oczekuje czterech parametrów, co może być mylące. Funkcje w JavaScript przyjmują argumenty, które są przekazywane poprzez użycie odpowiednich zmiennych, a nie poprzez dodatkowe wartości, co skutkuje błędnym wywołaniem. Również wyrażenie 'liczba_max(a, b, c) = wynik;' jest niezgodne z zasadami składniowymi JavaScript, ponieważ nie można przypisywać wartości do wyniku wywołania funkcji. Takie podejście prowadzi do błędów, ponieważ zwracana wartość funkcji nie jest zmienną, a sposobem na uzyskanie wyników. Kolejna koncepcja do zrozumienia to fakt, że funkcje w JavaScript zwracają wartości, które mogą być przypisywane do zmiennych, a nie ustalane na podstawie wywołania funkcji. Typowe błędy myślowe to nieporozumienie dotyczące tego, jak działa mechanizm zwracania wartości oraz niewłaściwe założenie, że funkcje mogą zmieniać wartości zewnętrznych zmiennych bezpośrednio. Zrozumienie tych zasad jest fundamentalne w programowaniu i kluczowe dla skutecznego wykorzystania funkcji w praktycznych aplikacjach.

Pytanie 20

<script>
  var imiona = ["Ala", "Ola", "Ela", ""];
  tymczasowa=imiona.length;
</script>
Przedstawiony kod JavaScript powoduje przypisanie do zmiennej tymczasowa wartości:
A. 3
B. 4
C. 1
D. 9
W tym fragmencie kodu tworzona jest tablica `imiona` z czterema elementami: "Ala", "Ola", "Ela" oraz pusty łańcuch znaków `""`. W JavaScript właściwość `.length` tablicy zwraca liczbę elementów w tablicy, a nie długość tekstu, ani sumę długości napisów. Niezależnie od tego, że ostatni element jest pustym stringiem, on nadal jest pełnoprawnym elementem tablicy. Dlatego `imiona.length` zwraca wartość 4, która następnie jest przypisywana do zmiennej `tymczasowa`. Moim zdaniem warto zapamiętać jedną prostą zasadę: dla obiektów typu Array w JavaScript `.length` oznacza ilość elementów, a dla stringów `.length` oznacza ilość znaków w napisie. To jest częste źródło pomyłek, szczególnie na początku nauki. Gdybyśmy napisali `"Ala".length`, wtedy dostalibyśmy 3, bo napis ma trzy znaki. Ale `imiona.length` patrzy tylko na to, ile pozycji ma tablica, więc wynik to 4. W praktyce `.length` jest bardzo często używane w pętlach, np. `for (var i = 0; i < imiona.length; i++) { ... }`, żeby przejść po wszystkich elementach tablicy. Dobrą praktyką jest też świadome operowanie na długości tablicy, bo w JavaScript można ją zmienić: ustawienie `imiona.length = 2` przytnie tablicę do dwóch elementów, a ustawienie większej wartości doda puste miejsca (tzw. `empty slots`). W nowoczesnym kodzie warto też pamiętać o metodach takich jak `forEach`, `map`, `filter`, które ukrywają bezpośrednią pracę z `.length`, ale nadal działają na tej samej koncepcji liczby elementów w tablicy. Z mojego doświadczenia dokładne rozumienie, co zwraca `.length` w różnych typach danych, bardzo ułatwia debugowanie i pisanie czytelnego kodu.

Pytanie 21

bool gotowe=true;
cout<<gotowe;
Jakie będzie wyjście w wyniku wykonania podanych poleceń?

A. Nie
B. Tak
C. 1
D. 0
Kiedy wybrałeś, że wynik to '0' lub inną wartość logiczną, mogłeś się pomylić co do działania zmiennych typu bool w C++. Myśląc, że wynik to '0', można sądzić, że zmienna gotowe (z wartością true) nie jest prawidłowo wyświetlana jako liczba. To jest w sumie sprzeczne z tym, co mówi definicja typu bool, bo true i false są pokazywane jako 1 i 0. Myślenie, że 'Tak' lub 'Nie' to dobre odpowiedzi, może wynikać z błędnego założenia, że bool można bardziej skomplikowanie interpretować. W rzeczywistości w C++ nie ma prostego przełożenia bool na tekst; korzystamy z liczbowych odpowiedników. Takie nieporozumienia mogą prowadzić do różnych błędów, zwłaszcza gdy programista nie rozumie podstawowych zasad konwersji typów danych. Ważne jest, żeby programiści wiedzieli, jak różne typy są reprezentowane i konwertowane w języku, bo to ma wpływ na działanie ich programów oraz na interakcje z użytkownikami. Ta wiedza jest kluczowa do tworzenia sprawnych aplikacji i unikania typowych błędów w kodowaniu.

Pytanie 22

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

A. function wynik(a) { return a*2/2; }
B. function wynik(a) { return a/2+a/2; }
C. function wynik(a) { return a*a/2; }
D. function wynik(a) { return 2*a/a; }
Funkcja function wynik(a) { return a*a/2; } jest całkiem w porządku. Działa, bo fajnie oblicza połowę kwadratu liczby, którą podajesz jako argument. W praktyce, 'a*a' to nic innego jak kwadrat liczby 'a', a potem dzielimy to przez 2, co nam daje wartość połowy tego kwadratu. To, co zrobiłeś, jest zgodne z zasadami matematyki i jak na programowanie w JavaScript to też się sprawdza. Na przykład, jak podstawisz '4', to funkcja zwróci 8, bo (4*4)/2 = 16/2 = 8. Takie obliczenia mogą się przydać w różnych aplikacjach, np. przy obliczeniach inżynieryjnych czy analizie danych, gdzie często korzysta się z takich wzorów. Użycie zmiennych i funkcji w programowaniu ułatwia zarządzanie danymi, a do tego można łatwiej się orientować w kodzie, co jest super.

Pytanie 23

Po uruchomieniu zamieszczonego w ramce skryptu w języku JavaScript, w przeglądarce zostanie wyświetlona wartość:

var a = 5;
var b = a--;
a *= 3;
document.write(a + "," + b);
A. 15,4
B. 15,5
C. 12,5
D. 12,4
W tym skrypcie JavaScript mamy operator dekrementacji a--, gdzie najpierw wartość zmiennej a jest przypisana do zmiennej b, a dekrementacja następuje później. Jeśli tego nie rozumiesz, może to prowadzić do różnych nieporozumień co do wynikowych wartości. Czyli po a-- b przyjmuje pierwotną wartość a, która wynosi 5. Warto zrozumieć kolejność operacji, bo przy operatorze postfix zmiana wartości następuje po przypisaniu. Później, po dekrementacji, a staje się 4, co czasem jest źle interpretowane, bo ludzie myślą, że b też by się zmieniło. Potem jest a *= 3, gdzie 4 mnożymy przez 3 i dostajemy 12. Często ludzie popełniają błąd, zakładając, że operatory działają równocześnie w jednym wierszu kodu. Ważne jest, żeby znać te subtelności, bo pomaga to w lepszym programowaniu i kontrolowaniu, jak zmienne się zmieniają.

Pytanie 24

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

A. niepoprawne informacje
B. wyświetlenie daty oraz czasu w znaczniku o id = napis
C. zmiana właściwości atrybutu innerHTML
D. wyświetlenie ciągu "Date()" w znaczniku o id = napis
W przedstawionej linii kodu JavaScript, 'document.getElementById("napis").innerHTML = Date;', mamy do czynienia z modyfikacją zawartości elementu HTML o identyfikatorze 'napis'. Funkcja 'getElementById' pozwala na selekcję elementu DOM, a atrybut 'innerHTML' umożliwia przypisanie nowej wartości, która będzie wyświetlana w tym elemencie. Wartością, która zostanie przypisana, jest 'Date', a nie 'Date()'. Przy użyciu 'Date' bez nawiasów, odnosi się do obiektu funkcji, a nie do wyniku wykonania tej funkcji, który zwraca aktualną datę i czas. W poprawnej wersji kodu powinno być 'document.getElementById("napis").innerHTML = new Date();', co spowoduje wyświetlenie bieżącej daty i godziny w elemencie o id 'napis'. Takie podejście jest zgodne z aktualnymi standardami ECMAScript, a także jest często wykorzystywane w aplikacjach webowych do dynamicznej aktualizacji treści na stronach internetowych, co zwiększa ich interaktywność i użytkowalność. Dla lepszego zrozumienia, praktycznym przykładem może być użycie tego kodu w aplikacji, która pokazuje czas rzeczywisty na stronie, co jest popularne w wielu projektach webowych.

Pytanie 25

W formularzu, wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w pokazany sposób. Jaki typ będzie miała zmienna x?

var x = parseInt(a);
A. NaN
B. liczbowy, całkowity
C. zmiennoprzecinkowy
D. napisowy
Funkcja parseInt() w JavaScript jest super przydatna, bo pozwala zamienić ciąg znaków na liczbę całkowitą. Jak masz zmienną a, która bierze dane z inputu typu number, to parseInt() łapie te liczby i wyrzuca wszystko, co nie jest cyfrą. Dzięki temu dostajesz liczby całkowite. Warto wiedzieć, że ta funkcja nie zaokrągla wyników, tylko obcina część dziesiętną. To świetna opcja, gdy potrzebujesz tylko całkowitych wartości. parseInt() dobrze działa w programowaniu – często wykorzystuje się go do walidacji i manipulacji liczbami. Z mojego doświadczenia, kiedy pracujesz z różnymi typami danych, musisz zadbać, żeby przekształcenia były na miejscu, bo to bardzo ważne dla aplikacji. Użycie parseInt() jest zgodne z zasadami ECMAScript, co oznacza, że działa w różnych środowiskach JavaScript. Przykładem dobrego zastosowania są aplikacje webowe, gdzie często potrzebujesz liczb całkowitych, na przykład w kalkulatorach czy formularzach z wyborem ilości produktów.

Pytanie 26

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

A. AJAX
B. CSS
C. JavaScript
D. PHP
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 27

Poniżej zamieszczony fragment skryptu w JavaScript zwróci

Ilustracja do pytania
A. ze
B. wo
C. wodzenia
D. owodzeni
Ten skrypt w JavaScript zaczyna od zadeklarowania zmiennej x, której przypisywana jest fraza 'Powodzenia na egzaminie'. Potem korzysta z metody substring na tej zmiennej z parametrami (3, 9). To znaczy, że wyciąga kawałek tekstu od indeksu 3 do 9. Pamiętaj, w JavaScript liczymy od zera, więc indeks 3 to czwarty znak, czyli 'o'. Dlatego z.substring(3, 9) zwraca 'odzeni'. Następnie, robimy kolejne wywołanie substring na tym wyniku, z parametrami (2, 4), co daje nam fragment od indeksu 2 do 4 w 'odzeni', czyli 'ze'. Na końcu, funkcja document.write(y) pokaże ten wynik na stronie. To świetny przykład na to, jak manipulować tekstem, co jest naprawdę przydatne w pracy z danymi. Z mojej perspektywy, zrozumienie operacji na tekstach to klucz do skutecznego przetwarzania i prezentacji informacji. Użycie takich metod w JavaScript do pracy z tekstem to absolutna podstawa, z którą warto się zapoznać.

Pytanie 28

Aby zrealizować podane czynności w JavaScript, należy w znaczniku <script> umieścić poniższy kod

  1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikacje: ", następnie po zatwierdzeniu
  2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się wartość pobrana z okna "Kwalifikacja: ..."
A. A = alert("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A)
B. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: ".A)
C. A = prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A)
D. A << prompt("Podaj kwalifikację: "); document.write("Kwalifikacja: " + A)
Odpowiedź 1 jest prawidłowa, ponieważ w JavaScript funkcja prompt() służy do wyświetlenia okna dialogowego z poleceniem dla użytkownika, aby wprowadził tekst. Po wpisaniu wartości przez użytkownika i zatwierdzeniu, tekst jest przypisywany do zmiennej A. Następnie funkcja document.write() umożliwia dynamiczne dodanie tego tekstu do dokumentu HTML. Poprawne użycie obu tych funkcji spełnia wymagania zadania – najpierw otwieramy okno dialogowe, a potem umieszczamy wprowadzone dane na stronie. Stosowanie prompt() i document.write() jest często wykorzystywane w aplikacjach webowych do interakcji z użytkownikiem w sposób bezpośredni. Mimo że bardziej nowoczesne metody, takie jak manipulacja DOM za pomocą innerHTML czy użycie frameworków JavaScript, oferują większe możliwości, prompt() i document.write() pozostają prostymi narzędziami do szybkiej prezentacji wyników na stronie. Warto jednak pamiętać, że nadmierne użycie document.write() może prowadzić do nadpisania istniejących treści w dokumencie, co nie jest optymalną praktyką w złożonych aplikacjach webowych.

Pytanie 29

W JavaScript, aby wyodrębnić fragment tekstu pomiędzy wskazanymi indeksami, powinno się zastosować metodę

A. trim()
B. concat()
C. slice()
D. replace()
Wybór innych metod do manipulacji ciągami tekstowymi sugeruje niezrozumienie ich właściwości. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co nie ma nic wspólnego z wydobywaniem fragmentów. Użytkownicy mogą mylnie sądzić, że trim() jest przydatna do ekstrakcji, jednak jej zastosowanie jest zupełnie inne i polega na oczyszczaniu danych. Metoda concat() łączy dwa lub więcej ciągów tekstowych, co również nie odpowiada na potrzebę wydobywania podciągu. Zrozumienie, że concat() nie jest odpowiedzią na pytanie o wydobycie fragmentu, jest kluczowe dla efektywnego korzystania z języka JavaScript. Z kolei replace() służy do zamiany określonego fragmentu tekstu na inny, co może wprowadzać w błąd, gdyż nie wydobywa fragmentów, lecz je modyfikuje. Użytkownicy mogą mylić te metody, nie dostrzegając różnic między modyfikacją a wydobywaniem, co jest istotne w kontekście manipulacji danymi. Ważne jest, aby rozumieć specyfikę każdej metody oraz jej zastosowanie w codziennym programowaniu, co pozwala na efektywniejsze i bardziej precyzyjne pisanie kodu w JavaScript.

Pytanie 30

Co robi funkcja przedstawiona w kodzie JavaScript?

function tekst() {
var h = location.hostname;
document.getElementById("info").innerHTML = h;
}
A. wyświetlić w elemencie o id = "info" nazwę hosta, z którego pochodzi wyświetlona strona
B. wyświetlić w elemencie o id = "info" adres hosta wskazany przez pierwszy odnośnik
C. pokazać na przycisku lokalizację hosta, a po jego naciśnięciu umożliwić przejście do określonej lokalizacji
D. umożliwić przejście do wskazanej lokalizacji hosta
Nieprawidłowe odpowiedzi wynikają z błędnego zrozumienia działania obiektu Location oraz manipulacji DOM w JavaScript. Jedna z odpowiedzi sugeruje, że funkcja umożliwia przejście do wskazanej lokalizacji hosta, co nie jest zgodne z działaniem location.hostname. Metoda ta jedynie pobiera nazwę hosta, nie wykonuje żadnych operacji nawigacyjnych. Innym błędnym założeniem jest twierdzenie, że funkcja wyświetla adres hosta wskazany pierwszym odnośnikiem. W rzeczywistości, location.hostname zwraca nazwę hosta aktualnej strony, a nie żadnego odnośnika w dokumencie. Kolejna błędna odpowiedź dotyczy umieszczenia tej nazwy na przycisku. Kod wyraźnie pokazuje, że manipulacja dotyczy elementu o id info, a nie przycisku, nie ma więc nic wspólnego z interakcją użytkownika poprzez kliknięcie. Takie nieporozumienia mogą wynikać z niedostatecznej znajomości specyfikacji obiektu Location oraz technik manipulacji DOM w JavaScript, co jest kluczowe dla efektywnego tworzenia dynamicznych i responsywnych stron internetowych. Poprawne zrozumienie pozwala tworzyć aplikacje, które są zarówno funkcjonalne, jak i bezpieczne dla użytkowników, co jest istotne w kontekście współczesnych standardów webowych.

Pytanie 31

Zademonstrowano fragment kodu JavaScript. Po jego uruchomieniu zmienna str2 otrzyma wartość. ```var str1 = "JavaScript"; var str2 = str1.substring(2, 6);```

A. avaScr
B. vaScri
C. avaS
D. vaSc
W przedstawionym fragmencie kodu JavaScript mamy do czynienia z metodą substring, która jest wykorzystywana do wyodrębnienia części łańcucha tekstowego. Wartością str1 jest 'JavaScript', a błędnie zapisany fragment 'str1.substring2,6)' wskazuje na próbę użycia metody substring, przy czym prawidłowy zapis to 'str1.substring(2, 6)'. Metoda substring przyjmuje dwa argumenty: indeks początkowy oraz indeks końcowy. W przypadku 'JavaScript', indeks 2 wskazuje na literę 'v', a indeks 6 na literę 'S'. Zatem metoda substring wyodrębni znaki od indeksu 2 do 5 (indeks 6 nie jest włączony), co daje wynik 'vaSc'. Warto również podkreślić, że metody pracy z łańcuchami tekstowymi są podstawą programowania w JavaScript, umożliwiając manipulację danymi tekstowymi i są zgodne z ECMAScript, co czyni je standardowymi dla tego języka. Dobrą praktyką jest zawsze zwracanie uwagi na poprawne użycie nawiasów oraz argumentów w metodach, co ma kluczowe znaczenie dla poprawności kodu. Przykład użycia: str1.substring(2, 6) zwróci 'vaSc', a str1.substring(0, 4) zwróci 'Java'.

Pytanie 32

Jak nazywa się metoda, która pozwala na nawiązanie asynchronicznego połączenia między klientem a serwerem oraz umożliwia wymianę danych bez przeładowania całej strony WWW?

A. YBScript
B. PHP
C. XML
D. AJAX
AJAX, czyli Asynchronous JavaScript and XML, to naprawdę fajna technika, która pozwala na komunikację między klientem a serwerem bez konieczności przeładowywania całej strony. To znaczy, że możemy wysyłać i odbierać dane w tle, co jest mega wygodne. Dzięki temu możemy np. aktualizować tylko część strony, kiedy użytkownik coś kliknie. Dużo nowoczesnych aplikacji, jak Gmail, korzysta z AJAX, żeby dynamicznie ładować i wysyłać e-maile. W praktyce, gdy użytkownik wysyła wiadomość, to nie musi czekać, aż załaduje się cała strona, żeby zobaczyć nową treść. AJAX współpracuje z różnymi technologiami, jak JSON, co ułatwia wymianę danych w formacie, który JavaScript bez problemu przetwarza. Generalnie, standardy webowe mówią, że warto korzystać z AJAX, bo poprawia to wydajność i responsywność aplikacji. Dlatego jest to narzędzie, które każdy nowoczesny deweloper stron powinien mieć w swoim arsenale.

Pytanie 33

O obiekcie przedstawionym w JavaScript można powiedzieć, że posiada

var obiekt1 = {
    x: 0,
    y: 0,
    wsp: function() { [...] }
}
A. trzema właściwościami
B. dwoma metodami oraz jedną właściwością
C. dwoma właściwościami oraz jedną metodą
D. trzema metodami
Analizując strukturę obiektów w języku JavaScript, często spotykamy się z terminami właściwości i metody. Właściwości to elementy obiektu przechowujące dane, natomiast metody to funkcje przypisane jako wartości właściwości, które pozwalają na wykonywanie operacji na obiekcie. Błędne zrozumienie tych pojęć może prowadzić do niepoprawnej interpretacji struktury obiektu. Jeśli zakładamy, że obiekt ma dwie metody i jedną właściwość, oznaczałoby to, że w obiekcie znajdziemy dwie funkcje i jeden element przechowujący dane, co nie odpowiada rzeczywistości przedstawionej na obrazku. Podobnie, stwierdzenie, że obiekt zawiera trzy właściwości, ignoruje obecność funkcji, która pełni rolę metody. Z kolei twierdzenie, że obiekt ma trzy metody, oznaczałoby całkowity brak właściwości przechowujących dane, co jest sprzeczne z danymi stanowymi obiektu. Takie nieporozumienia wynikają często z braku zrozumienia struktury i natury obiektów w języku JavaScript. Dla poprawnego programowania kluczowe jest rozróżnienie tych elementów i poprawne przypisywanie ich ról w obiekcie, co prowadzi do bardziej wydajnego i przejrzystego kodu. Dobre praktyki programistyczne zalecają dokładne analizowanie wymagań i struktury danych przy projektowaniu obiektów, co pozwala na uniknięcie takich błędów w przyszłości i poprawia jakość aplikacji.

Pytanie 34

W języku JavaScript zapisano kod, którego wynikiem działania jest?
var osoba=prompt("Podaj imię", "Adam");

A. pokazanie okna z pustym polem do edycji
B. uzyskanie z formularza wyświetlonego na stronie HTML imienia "Adam"
C. bezpośrednie przypisanie do zmiennej osoba wartości "Adam"
D. wyświetlenie okna z polem do edycji, w którym domyślnie znajduje się tekst "Adam"
W kodzie JavaScript zapisano wywołanie funkcji prompt, która jest standardową metodą do interakcji z użytkownikiem poprzez wyświetlenie okna dialogowego. Funkcja ta przyjmuje dwa argumenty: pierwszy to tekst, który będzie wyświetlony jako prośba o dane, a drugi to opcjonalna wartość domyślna, która pojawi się w polu edycyjnym okna dialogowego. W przykładzie użytkownik proszony jest o podanie imienia, a domyślną wartością, która jest predefiniowana w tym przypadku, jest 'Adam'. Działanie tego kodu spowoduje otwarcie okna z polem edycyjnym, w którym już znajduje się 'Adam', co ułatwia użytkownikowi wprowadzenie danych. Ponadto, gdy użytkownik kliknie 'OK' lub 'Anuluj', wynik (czyli wartość wpisana przez użytkownika lub null, jeśli anulował) zostanie przypisany do zmiennej 'osoba'. Warto zaznaczyć, że funkcja prompt jest powszechnie używana w aplikacjach webowych do szybkiego zbierania informacji od użytkowników. Dzięki temu kodowi programiści mogą efektywnie interactować z użytkownikami, co jest zgodne z duchem nowoczesnych aplikacji internetowych opartych na JavaScript.

Pytanie 35

Pętla w kodzie JavaScript zostanie uruchomiona

Ilustracja do pytania
A. 27 razy
B. 26 razy
C. 3 razy
D. 2 razy
Pętla do-while w JavaScript wykonuje się co najmniej raz ze względu na swoją konstrukcję. W tym przypadku pętla zaczyna się od wartości x równej 1 i w każdej iteracji mnoży x przez 3. Zmienna i jest inkrementowana przy każdej iteracji, co zlicza liczbę wykonanych iteracji. Pętla kontynuuje aż do momentu, gdy x osiągnie wartość 27. Przebieg pętli wygląda następująco: początkowo x=1, po pierwszej iteracji x=3, po drugiej x=9, a po trzeciej x=27. Gdy x osiąga wartość 27, warunek pętli x!=27 przestaje być spełniony i pętla się kończy. Dlatego pętla wykonuje dokładnie 3 iteracje. Zrozumienie działania pętli do-while jest kluczowe, zwłaszcza w kontekście sytuacji, gdzie musimy zagwarantować, że blok kodu wykona się przynajmniej raz niezależnie od warunku na końcu. Tego typu pętle są często używane w aplikacjach wymagających walidacji danych wejściowych, gdzie przynajmniej jedna próba przetworzenia danych musi być wykonana.

Pytanie 36

Jakiego typu tablicy dotyczy instrukcja dodawania elementu w JavaScript?

Tablica['technik'] = 'informatyk';
A. liczbowej
B. stałej
C. asocjacyjnej
D. wielowymiarowej
Tablica asocjacyjna w JavaScript to struktura danych, która przechowuje wartości w formie par klucz-wartość, co pozwala na efektywne i dynamiczne przypisywanie i pobieranie danych. Klucze w tablicy asocjacyjnej mogą być dowolnymi łańcuchami znaków, co daje dużą elastyczność w organizacji danych. Przykładem jest przypisanie Tablica['technik'] = 'informatyk'; gdzie 'technik' jest kluczem, a 'informatyk' wartością. To podejście jest zgodne ze standardami JavaScript, w którym tablice asocjacyjne są implementowane jako obiekty. W praktyce używa się ich często do przechowywania konfiguracji, danych użytkowników lub innych danych, które wymagają szybkiego dostępu i modyfikacji. Tablice asocjacyjne umożliwiają dynamiczne dodawanie nowych par klucz-wartość, co jest cenioną cechą w aplikacjach wymagających skalowalności. Warto zauważyć, że podczas gdy tradycyjne tablice używają indeksów liczbowych, tablice asocjacyjne oferują większą elastyczność poprzez użycie kluczy tekstowych, co jest zgodne z dobrymi praktykami kodowania i ułatwia czytelność oraz utrzymanie kodu.

Pytanie 37

Funkcja przedstawiona w kodzie JavaScript ma na celu

Ilustracja do pytania
A. wyświetlić kolejne liczby od a do n
B. pokazać wynik mnożenia a przez n
C. zwrócić iloczyn kolejnych liczb od 1 do a
D. zwrócić wynik potęgowania an
Wśród przedstawionych odpowiedzi, niektóre mogą wydawać się kuszące, ale są niepoprawne z powodu złego zrozumienia działania pętli for i operacji arytmetycznych w JavaScript. Opcja, że funkcja miałaby wypisać kolejne liczby od a do n, jest błędna. Kod nie zawiera żadnej instrukcji wyświetlania czy logowania, a jedynie operacje arytmetyczne i zwracanie wyniku. Podobnie, wypisywanie wyniku mnożenia a przez n jest niepoprawne, gdyż funkcja nie wykonuje jednokrotnego mnożenia a i n. Zamiast tego, wykonuje wielokrotne mnożenie a, co jest typowe dla operacji potęgowania. W końcu, mylne byłoby sądzenie, że funkcja oblicza iloczyn kolejnych liczb od 1 do a. Taki proces wymagałby zagnieżdżonej logiki, iteracji po zmiennej innej niż a, co nie jest obecne w danym kodzie. Błędne odpowiedzi mogą wynikać z niepełnego zrozumienia jak działa pętla for lub jak przypisuje się wartości w operacjach iteracyjnych. Kluczową umiejętnością jest umiejętność odczytywania i interpretowania kodu w kontekście wykonywanych operacji, co wymaga doświadczenia w pracy z językiem programowania i jego strukturami kontrolnymi.

Pytanie 38

Weryfikację kompletności formularza, działającą po stronie przeglądarki, należy zrealizować w języku

A. JavaScript
B. PHP
C. Ruby on Rails
D. CSS
Poprawna odpowiedź to JavaScript, bo właśnie ten język działa bezpośrednio w przeglądarce użytkownika i pozwala na dynamiczną weryfikację formularzy jeszcze przed wysłaniem danych na serwer. JavaScript ma dostęp do drzewa DOM, więc może odczytać wartości pól, sprawdzić, czy nie są puste, czy e‑mail ma poprawny format, czy hasło ma odpowiednią długość, a nawet czy dwa pola hasła są identyczne. Z mojego doświadczenia to jest absolutny standard w nowoczesnych aplikacjach webowych: najpierw lekka walidacja po stronie klienta w JS, a dopiero potem solidna walidacja po stronie serwera. Dobrym przykładem jest formularz rejestracji: po wpisaniu zbyt krótkiego hasła JavaScript może od razu wyświetlić komunikat pod polem, bez przeładowania strony. Można też blokować przycisk „Wyślij”, dopóki wszystkie wymagane pola nie są poprawnie wypełnione. W praktyce często używa się zdarzeń takich jak onsubmit na formularzu albo input/blur na polach, żeby na bieżąco sprawdzać dane. Można też korzystać z gotowych bibliotek walidacyjnych, ale pod spodem i tak pracuje JavaScript. W dobrych praktykach przyjmuje się zasadę: walidacja po stronie klienta poprawia wygodę i szybkość obsługi (user experience), ale nie zastępuje walidacji po stronie serwera. JavaScript służy więc do „pierwszej linii obrony” i podpowiedzi użytkownikowi, a serwer (np. w PHP czy innym języku backendowym) musi i tak wszystko jeszcze raz sprawdzić ze względów bezpieczeństwa. Warto też pamiętać o wykorzystaniu wbudowanych mechanizmów HTML5 (atrybuty required, type="email" itd.), ale to JavaScript daje pełną kontrolę nad logiką i komunikatami błędów, bo pozwala tworzyć własne reguły i reagować na konkretne zachowania użytkownika.

Pytanie 39

Wskaż właściwy sposób zapisu instrukcji w języku JavaScript.

A. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " . 3.14 );
B. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " ; 3.14 );
C. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " + 3.14 );
D. document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " 3.14 );
Poprawna odpowiedź to 'document.write("Liczba π z dokładnością do 2 miejsc po przecinku ≈ " + 3.14);'. Ta instrukcja w języku JavaScript umożliwia wyświetlenie tekstu oraz wartości liczbowej na stronie internetowej. Kluczowym elementem jest operator konkatenacji '+', który służy do łączenia ze sobą dwóch lub więcej stringów. W tym przypadku łączymy tekst z wartością liczby π. Użycie podwójnych cudzysłowów do otoczenia tekstu jest poprawne, a znaki ucieczki (backslash) przed cudzysłowami wewnętrznymi zapewniają, że JavaScript prawidłowo interpretuje je jako część tekstu, a nie zakończenie stringa. W praktyce często korzysta się z tego typu zapisów do dynamicznego generowania treści na stronach internetowych, co jest zgodne z zasadami programowania obiektowego oraz dobrymi praktykami w zakresie czytelności kodu. Warto również zauważyć, że 'document.write' jest funkcją, którą należy stosować ostrożnie, gdyż może nadpisywać istniejącą zawartość strony, jeśli użyta zostanie po załadowaniu DOM. Dlatego w nowoczesnych aplikacjach webowych preferowane są inne metody, takie jak manipulacja DOM poprzez metody 'appendChild' lub 'innerHTML'.

Pytanie 40

Jaką wartość będzie mieć zmienna str2 po wykonaniu poniższego fragmentu kodu JavaScript?

var str1 = "JavaScript"; var str2 = str1.substring(2, 6);
A. avaScr
B. avaS
C. vaSc
D. vaScri
Metoda substring w JavaScript służy do wycinania fragmentów łańcucha znaków na podstawie podanych indeksów. W przypadku kodu str1.substring(2 6) metoda pobiera znaki zaczynając od indeksu 2 do indeksu 6 wyłącznie. Indeksowanie w JavaScript jest zerowe oznacza to że pierwszy znak ma indeks 0 drugi indeks 1 itd. Dlatego dla łańcucha JavaScript indeks 2 odpowiada trzeciemu znakowi a jest to literka v. Idąc dalej indeks 3 to a indeks 4 to S i indeks 5 to c. Indeks 6 jest wyłączny co oznacza że znak na tym miejscu nie jest uwzględniany w wyniku końcowym. Dlatego też wynikiem wywołania substring(2 6) jest ciąg znaków vaSc. Metoda substring jest przydatna w sytuacjach gdzie potrzebujemy wyodrębnić fragment ciągu znaków na przykład przy przetwarzaniu tekstów czy danych wejściowych z formularzy. Dobra praktyka przy używaniu tej metody to zawsze uwzględnianie indeksów początkowego i końcowego w celu uniknięcia błędów logicznych w kodzie oraz zapewnienie czytelności i zrozumiałości kodu dla innych programistów.