Wyniki egzaminu

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

Egzamin niezdany

Wynik: 15/40 punktów (37,5%)

Wymagane minimum: 20 punktów (50%)

Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Wskaż pętlę w języku JavaScript, która wypisze sześć kolejnych liczb parzystych.

A. for(i=2;i<=12;i+=2) {document.write(i);}
B. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
C. for(i=2;i<12;i++) {i++; document.write(i);}
D. for(i=2;i<12;i+=2) {document.write(i);}
Prawidłowa odpowiedź to pętla for(i=2;i<=12;i+=2) {document.write(i);}, ponieważ jest ona skonstruowana w sposób, który pozwala na wyświetlenie sześciu kolejnych liczb parzystych, zaczynając od 2 do 12 włącznie. Pętla for składa się z trzech głównych części: inicjalizacji (i=2), warunku (i<=12) oraz inkrementacji (i+=2). Inicjalizacja ustawia zmienną i na 2, co jest pierwszą liczbą parzystą. Warunek i<=12 zapewnia, że pętla będzie kontynuowana do momentu, gdy i osiągnie wartość większą niż 12, co oznacza, że ostatnią liczbą, która zostanie wyświetlona, będzie 12. Inkrementacja i+=2 powoduje, że przy każdej iteracji wartość i zwiększa się o 2, co pozwala na przechodzenie pomiędzy kolejnymi liczbami parzystymi (2, 4, 6, 8, 10, 12). Taki sposób konstrukcji pętli jest zgodny z zasadami programowania w JavaScript oraz pozwala na efektywne i kontrolowane wyświetlanie danych na stronie. Istotne jest również, że wykorzystanie metody document.write() jest jedną z prostszych form wyświetlania danych w JavaScript, aczkolwiek w praktyce jest zalecane korzystanie z bardziej nowoczesnych metod, takich jak manipulacja DOM, aby uniknąć nadpisywania całej zawartości strony.

Pytanie 2

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

wynik = 0;
for (i = 0; i < tab.length; i++) {
wynik += tab[i];
}
A. policzenie sumy wszystkich elementów tablicy
B. dodanie stałej wartości do każdego elementu tablicy
C. wprowadzenie do każdego elementu tablicy bieżącej wartości zmiennej i
D. wyświetlenie wszystkich elementów tablicy
Podany fragment kodu w języku JavaScript pokazuje klasyczną strukturę pętli for, która pozwala na przejście przez wszystkie elementy tablicy i wykonanie na nich określonych operacji. W tym przypadku celem pętli jest zsumowanie wszystkich elementów tablicy. Zmienna wynik jest inicjalizowana wartością 0, co jest dobrą praktyką programistyczną, aby zapewnić prawidłowe działanie sumowania. Pętla iteruje przez każdy element tablicy tab przy pomocy zmiennej i, która pełni rolę indeksu. Przy każdej iteracji do zmiennej wynik dodawana jest wartość bieżącego elementu tablicy tab[i]. Po zakończeniu pętli zmienna wynik będzie zawierać sumę wszystkich elementów tablicy. Takie podejście jest podstawą wielu algorytmów przetwarzających dane tablicowe i ilustruje ważny koncept iteracyjnego przetwarzania danych. Warto również wspomnieć, że takie podstawowe operacje jak to sumowanie mogą być zastosowane w wielu dziedzinach takich jak analiza danych obliczenia statystyczne czy przetwarzanie dużych zbiorów danych w systemach komputerowych co czyni je niezwykle wartościowymi w praktyce zawodowej

Pytanie 3

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 skrypcie PHP, a przesyłanie danych w JavaScript
B. walidację i przesyłanie danych w języku PHP
C. walidację i przesyłanie danych w języku JavaScript
D. walidację w języku JavaScript, a przesyłanie danych w skrypcie PHP
Wybór walidacji i przesyłania danych w języku PHP jest nieefektywny w kontekście nowoczesnych aplikacji webowych. Język PHP jest używany głównie po stronie serwera i nie jest przeznaczony do walidacji danych w czasie rzeczywistym. Oczekiwanie na przesłanie formularza do serwera, aby uzyskać informację o błędach, prowadzi do nieprzyjemnych doświadczeń użytkowników. Użytkownik musi czekać na odpowiedź serwera, co może być czasochłonne i frustrujące. Ponadto, walidacja po stronie serwera może sprawić, że użytkownik straci wprowadzone dane, jeśli wystąpią błędy. To podejście nie tylko obniża użyteczność formularzy, ale także może prowadzić do większych obciążeń serwera, ponieważ każde wprowadzenie danych wymaga zaangażowania zasobów serwerowych. Implementując walidację w JavaScript, można natychmiast informować użytkownika o niewłaściwych danych, co nie tylko zaspokaja potrzeby użytkownika, ale także zmniejsza ilość niepotrzebnych zapytań do serwera. Ostatecznie, korzystanie z jednego języka do obu zadań jest sprzeczne z zasadą separacji obowiązków, co jest kluczowe w inżynierii oprogramowania. Zamiast tego, prawidłową praktyką jest wykorzystanie JavaScript do walidacji danych przed ich przesłaniem, co pozwala na znacznie bardziej responsywne i przyjazne dla użytkownika doświadczenia.

Pytanie 4

Zapis w języku JavaScript:

x = przedmiot.nazwa();
wskazuje, że
A. Zmienna x będzie przechowywać rezultat wykonania metody nazwa.
B. nazwa jest polem w klasie przedmiot.
C. nazwa stanowi właściwość obiektu przedmiot.
D. Zmienna x będzie przechowywać rezultat działania funkcji przedmiot.
W kontekście przedstawionego pytania, niepoprawne odpowiedzi sugerują nieporozumienia dotyczące struktury obiektów w JavaScript oraz różnicy pomiędzy metodami a właściwościami. W szczególności, wskazanie, że nazwa jest właściwością obiektu przedmiot, jest mylne, ponieważ w tej konstrukcji 'nazwa' nie jest statycznym atrybutem, lecz metodą, co implikuje, że jest funkcją, a nie prostą wartością. Istotne jest zrozumienie, że właściwości obiektów przechowują dane, ale metody wykonują operacje na tych danych. Dodatkowo, mylenie metody z polem klasy prowadzi do błędnego postrzegania obiektów. W JavaScript, metody są funkcjami przypisanymi do obiektów, podczas gdy pola klasy, nazywane właściwościami, są zupełnie innym bytem. Typowe błędy myślowe w tym kontekście obejmują również nieznajomość pojęcia kontekstu wykonania, który w JavaScript jest kluczowy dla zrozumienia, jak metody działają w odniesieniu do obiektów. Właściwe zrozumienie tych różnic jest fundamentalne dla efektywnego programowania obiektowego. Używanie obiektów w JavaScript powinno opierać się na jasnym rozróżnieniu pomiędzy ich właściwościami a funkcjami, co skutkuje bardziej zorganizowanym i zrozumiałym kodem.

Pytanie 5

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. myszki będzie wciśnięty
B. klawiatury będzie zwolniony
C. klawiatury będzie wciśnięty
D. myszki będzie zwolniony
Wybór odpowiedzi związanej z myszą, jak naciśnięcie lub zwolnienie przycisku myszki, jest nieprawidłowy, ponieważ zdarzenie onKeydown nie ma związku z interakcjami myszy. Zdarzenia związane z myszą, takie jak onclick, onmousedown czy onmouseup, są odpowiedzialne za reakcje na działania użytkownika z użyciem myszy, a nie klawiatury. W kontekście zastosowań webowych, mylenie tych dwóch rodzajów interakcji może prowadzić do nieprawidłowego zrozumienia, jak działa system zdarzeń w JavaScript. Zdarzenie onKeydown jest specyficzne dla klawiatury i jest wywoływane tylko, gdy użytkownik naciśnie klawisz na klawiaturze, co jest istotne dla operacji wymagających danych tekstowych lub komend klawiszowych. Ignorowanie tej zasady prowadzi do typowych błędów w programowaniu, takich jak niewłaściwa obsługa zdarzeń, co z kolei może skutkować nieefektywnym działaniem aplikacji i frustracją użytkowników. Ważne jest, aby przy projektowaniu systemów interakcji, wyraźnie rozróżniać rodzaje zdarzeń oraz zrozumieć ich zastosowanie w praktyce, co jest fundamentem efektywnego programowania w JavaScript.

Pytanie 6

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

var x = parseInt(a);

Jakiego typu jest zmienna x?

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

Pytanie 7

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

A. <p href="/akapit">akapit3</p>
B. <p id="akapit">akapit2</p>
C. <p class="akapit">akapit4</p>
D. <p>akapit</p>
Analizując inne odpowiedzi, można zauważyć kilka technicznych nieporozumień. W przypadku <p>akapit</p>, brak atrybutu class oznacza, że element ten nie jest dostępny dla metody getElementsByClassName, która wymaga specyficznego przypisania klas do elementów. Podobnie, <p href="/akapit">akapit3</p> zawiera atrybut href, który nie ma zastosowania w kontekście akapitu, ponieważ href jest używany głównie w elementach <a> do definiowania linków, a nie w akapitach. Taki błąd może prowadzić do mylnego przekonania, że atrybuty, które nie są związane z klasami, mogą być używane do selekcji elementów. Z kolei <p id="akapit">akapit2</p> ma przypisany atrybut id, co również nie działa w przypadku metody getElementsByClassName, ponieważ ta metoda selekcjonuje elementy na podstawie klas, a nie identyfikatorów. Użycie id jako selektora w JavaScript powinno odbywać się za pomocą metody getElementById, która jest bardziej odpowiednia w tym kontekście. Warto podkreślić, że powszechnym błędem w myśleniu jest mylenie różnych mechanizmów selekcji w JavaScript i przypisywaniu im niewłaściwych atrybutów. Zrozumienie różnic między klasami a identyfikatorami jest kluczowe dla skutecznego zarządzania elementami DOM i tworzenia bardziej przejrzystego kodu.

Pytanie 8

Jaką instrukcję w JavaScript można uznać za równoważną pod względem funkcjonalności do zaprezentowanej?

Ilustracja do pytania
A. Kod 3
B. Kod 4
C. Kod 1
D. Kod 2
W przypadku analizy niepoprawnych odpowiedzi, ważne jest zrozumienie błędnych koncepcji, które mogą prowadzić do błędnych wniosków. W Kodzie 1 błędnie zastosowano mechanizm else, który prowadzi do tego, że ostatnia operacja jest wykonywana zawsze, gdy żaden poprzedni warunek nie jest spełniony. Może to prowadzić do nieprzewidywalnych wyników, jeśli wartość 'dzialanie' nie pasuje do żadnego z przypadków. Kod 3, z użyciem operatora !=, nie zapewnia prawidłowego działania, gdyż realizuje wszystkie operacje niezależnie od wartości 'dzialanie', co jest sprzeczne z zamiarem instrukcji switch. To powszechny błąd, gdzie brak pełnego zrozumienia logiki warunkowej prowadzi do pomyłek w implementacji. Z kolei, Kod 4 ma poprawną strukturę if-else if, ale różni się od poprawnej odpowiedzi nadmiarem zagnieżdżonych warunków, co może wprowadzać niepotrzebne komplikacje i zwiększać czas wykonania. Zrozumienie błędów w logice warunkowej jest kluczowe do pisania efektywnego i poprawnego kodu, co jest fundamentalne w programowaniu aplikacji o wysokiej niezawodności. Kluczem do unikania takich błędów jest praktyka i głębokie zrozumienie struktury danych oraz logiki w programowaniu.

Pytanie 9

W języku JavaScript potrzebne jest odwołanie się do elementu znajdującego się w pierwszym paragrafie danego fragmentu kodu HTML. Można to osiągnąć przy użyciu funkcji

<body>
<p>pierwszy paragraf</p>
<p>drugi paragraf</p>
<p>trzeci paragraf</p>
A. getElementById('p1')
B. getElementsByClassName('p.1')[0]
C. getElementsByTagName('p')[0]
D. getElement('p')
Metoda getElementsByClassName("p.1")[0]; jest niepoprawna, ponieważ jej użycie zakłada, że w dokumencie HTML występuje element z klasą "p.1", a w podanym fragmencie HTML nie ma żadnego elementu, który spełniałby ten warunek. Klasy w HTML definiuje się za pomocą atrybutu class, a nie poprzez dotację z kropką w nazwie. W przypadku użycia getElementById("p1");, ta metoda zakłada, że istnieje element z unikalnym identyfikatorem "p1". W przedstawionym fragmencie również tego identyfikatora nie ma, co czyni tę odpowiedź błędną. Metoda getElement("p"); jest nieprawidłowa, ponieważ takiej metody nie ma w standardowym obiekcie document w JavaScript. Programista, zamiast tego, powinien użyć getElementById lub getElementsByTagName. Użycie getElementsByTagName jest najlepszą praktyką, ponieważ pozwala na selekcję wszystkich elementów danego typu. Często mylące są koncepcje związane z selekcją elementów; kluczowe jest zrozumienie, że metody JavaScript są czułe na typy i struktury dokumentu. Dlatego ważne jest, aby dokładnie wiedzieć, jakie elementy chcemy wybrać i jakie metody są do tego dostępne w standardzie DOM.

Pytanie 10

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

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

2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
    wartość pobrana z okna "Kwalifikacja: ..."
A. A = 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);
Gratulacje, wybrałeś prawidłową odpowiedź! Kiedy chcemy wykonać interakcje z użytkownikiem poprzez okno dialogowe w JavaScript, używamy funkcji 'prompt()'. Ta funkcja wyświetla okno dialogowe z komunikatem tekstowym, polem do wprowadzania danych i przyciskami OK / Anuluj. Wartość wprowadzona przez użytkownika jest następnie zwracana przez funkcję 'prompt()'. W tym przypadku, używamy funkcji 'prompt()' do pobrania kwalifikacji od użytkownika. Następnie, używamy funkcji 'document.write()' do wyświetlenia zdobytej kwalifikacji na stronie internetowej. Operator '+' jest używany do łączenia łańcuchów znaków (stringów) w JavaScript, co pozwala na połączenie wartości wprowadzonej przez użytkownika z komunikatem 'Kwalifikacja: '. Pamiętaj, że choć 'document.write()' jest łatwym sposobem na wyświetlanie wyników na stronie, jest to metoda zarezerwowana głównie do testowania i debugowania, a nie do użytku produkcyjnego, ze względu na możliwość nadpisania zawartości strony.

Pytanie 11

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

A. replace()
B. trim()
C. concat()
D. slice()
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 12

Co wykonuje poniższy fragment kodu w JavaScript?

n = "Napis1";
s = n.length;
A. Przypisze zmienną n do zmiennej s
B. Przypisze zmiennej s fragment tekstu ze zmiennej n, o długości określonej przez zmienną length
C. Wyświetli długość tekstu ze zmiennej n
D. Przypisze zmiennej s wartość, która odpowiada długości tekstu ze zmiennej n
Analizując błędne odpowiedzi można zauważyć kilka typowych nieporozumień związanych z właściwością length w JavaScript. Pierwszym z nich jest mylne założenie że length służy do wycinania fragmentu napisu co sugeruje odpowiedź o przypisaniu zmiennej s fragmentu napisu. W rzeczywistości length to właściwość która zwraca liczbę elementów w stringu a nie jego część. Aby wyciąć fragment stringa należy użyć metod takich jak slice lub substring które są przeznaczone do tego celu. Kolejne nieporozumienie polega na traktowaniu length jako funkcji która wyświetla długość napisu. Właściwość length po prostu zwraca wartość dlatego jeśli chcemy ją wyświetlić musimy użyć dodatkowych konstrukcji takich jak console.log w środowisku programistycznym przeglądarki. Następne potencjalne nieporozumienie związane jest z przypisaniem zmiennej n do zmiennej s. Bezpośrednie przypisanie całego stringa do innej zmiennej wymagałoby użycia operatora przypisania (=) bez kontekstu length. Takie błędne rozumowanie często wynika z nieuwagi lub braku doświadczenia w pracy z właściwościami obiektów w JavaScript. Programując w tym języku warto pamiętać że każda właściwość i metoda ma swoje konkretne zastosowanie i przeznaczenie stąd znajomość ich specyfiki jest kluczowa dla efektywnego kodowania. Dzięki tej wiedzy programista może unikać typowych pułapek i optymalizować procesy przetwarzania danych co jest szczególnie istotne w kontekście aplikacji webowych rozwijanych w JavaScript.

Pytanie 13

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 26 razy
B. 2 razy
C. 27 razy
D. 3 razy
W przedstawionym kodzie JavaScript, pętla do-while wykonuje się do momentu, gdy zmienna x nie jest równa 27. Zaczynając od wartości x równej 1, przy każdym przejściu przez pętlę zmienna x jest mnożona przez 3. Kolejno, x przyjmuje wartości: 3, 9, 27. Zatem pętla wykonuje się trzy razy, ponieważ dopiero po trzecim cyklu x osiąga wartość 27, co powoduje zakończenie pętli. Do-while zawsze wykonuje przynajmniej jedno przejście, niezależnie od warunku końcowego, dzięki czemu jest przydatna w sytuacjach, gdy operacja musi być przeprowadzona co najmniej raz. Dobrym przykładem wykorzystania tego mechanizmu jest oczekiwanie na spełnienie określonego warunku, np. uzyskanie poprawnej odpowiedzi od użytkownika. Warto zwrócić uwagę, że w przypadku operacji matematycznych wymagających określonej liczby iteracji, pętla do-while zapewnia prostotę i przejrzystość implementacji, zgodnie z dobrymi praktykami zapewniającymi łatwość w czytaniu i utrzymaniu kodu.

Pytanie 14

Zapis przedstawiony w języku JavaScript oznacza, że

x = przedmiot.nazwa();
A. nazwa to pole klasy przedmiot.
B. zmienna x będzie przechowywać wynik działania metody nazwa.
C. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
D. nazwa to właściwość obiektu przedmiot.
Rozważając inne proponowane odpowiedzi, należy zrozumieć, że język JavaScript często wykorzystuje programowanie obiektowe, gdzie właściwości i metody obiektów różnią się w użyciu. Pierwsza opcja sugeruje, że nazwa jest właściwością obiektu przedmiot, co jest błędne w kontekście przedstawionego kodu, ponieważ użyto nawiasów okrągłych, co jednoznacznie wskazuje na wywołanie metody, a nie na odwołanie się do właściwości. Druga opcja mówi o nazwie jako polu klasy przedmiot, co jest mylące, ponieważ w JavaScript nie istnieje formalny podział na pola i metody w taki sposób, jak w statycznie typowanych językach jak Java czy C++. JavaScript, jako język dynamiczny, używa właściwości obiektu do przechowywania zarówno danych, jak i funkcji. Czwarta propozycja, że zmienna x będzie przechowywać wynik działania funkcji przedmiot, również jest błędna, ponieważ w kodzie widzimy wywołanie metody nazwa() na obiekcie przedmiot, a nie wywołanie funkcji przedmiot. Typowe błędy myślowe mogą wynikać z niewłaściwego rozróżnienia między funkcjami i metodami, czy też z niepoprawnego przypisywania ról poszczególnym elementom składni w dynamicznie typowanych językach, co prowadzi do nieporozumień w kontekście konwencji programistycznych stosowanych w JavaScript.

Pytanie 15

W języku Javascript obiekt typu array jest używany do przechowywania

A. wielu wartości lub metod
B. wielu wartości jedynie liczbowych
C. wielu wartości jedynie tekstowych
D. wielu wartości różnych typów
Wielu programistów mogą zmylić ograniczenia dotyczące typów danych w JavaScript, co prowadzi do błędnych wniosków na temat możliwości tego języka. Nieprawidłowe odpowiedzi sugerują, że tablice w JavaScript mogą przechowywać tylko jednorodne typy danych, takie jak wyłącznie tekstowe lub wyłącznie liczbowe wartości. Takie podejście jest ograniczone i nie uwzględnia elastyczności, jaką oferuje JavaScript. Obiekty array w tym języku są projektowane w taki sposób, aby umożliwić przechowywanie różnych typów danych w jednej tablicy, co jest kluczowe dla nowoczesnego programowania. Przykładem może być tablica, która zawiera zarówno liczby, jak i obiekty, co umożliwia tworzenie bardziej złożonych struktur danych. Często spotykanym błędem jest mylenie tablic z innymi strukturami danych, które wymuszają jednolitość typów, jak np. tablice w języku Java. Właściwe zrozumienie typów danych oraz ich właściwości w JavaScript jest niezbędne dla efektywnego kodowania oraz unikania pułapek związanych z typowymi błędami myślowymi, które mogą prowadzić do długotrwałych trudności w utrzymaniu kodu.

Pytanie 16

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

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz1.png zostanie zniknięty
B. obraz1.png zostanie wymieniony przez obraz2.png
C. obraz2.png zostanie wymieniony przez obraz1.png
D. obraz2.png zostanie zniknięty
Błędne odpowiedzi opierają się na nieporozumieniach dotyczących działania JavaScript i manipulacji DOM. Wskazanie, że 'obraz1.png' zostanie ukryty, jest niepoprawne, ponieważ w kodzie nie ma żadnej instrukcji odnoszącej się do tego elementu; zmiany dotyczą tylko 'obraz2.png'. Innym błędnym wnioskiem jest twierdzenie, że 'obraz2.png' zostanie zastąpiony przez 'obraz1.png'. Taki scenariusz wymagałby zmiany źródła obrazu, a nie ukrycia elementu. Ponadto, stwierdzenie, że 'obraz1.png' zostanie zastąpiony przez 'obraz2.png', również ignoruje fakt, że w kodzie nie ma operacji przypisania ani zmiany źródła. Zrozumienie, jak JavaScript interaguje z HTML, jest kluczowe dla efektywnego tworzenia stron internetowych. Programiści muszą być świadomi, że ukrywanie elementów nie wpływa na inne elementy w dokumencie, a jedynie zmienia ich styl wyświetlania. Dlatego ważne jest, aby dobrze zrozumieć koncepcje manipulacji DOM oraz różnice między ukrywaniem elementów a ich usuwaniem, co pozwala na bardziej złożone i interaktywne doświadczenia na stronach internetowych.

Pytanie 17

Wskaż konstrukcję pętli w języku JavaScript, która wyświetli sześć kolejnych liczb parzystych

A. for(i=2;i<=12;i+=2) {document.write(i);}
B. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
C. for(i=2;i<12;i+=2) {document.write(i);}
D. for(i=2;i<12;i++) {i++; document.write(i);}
Odpowiedź for(i=2;i<=12;i+=2) {document.write(i);} jest prawidłowa, ponieważ prawidłowo implementuje pętlę for w języku JavaScript, aby wydrukować sześć kolejnych liczb parzystych, zaczynając od 2 i kończąc na 12. Pętla ta inicjuje zmienną i na wartość 2, a następnie kontynuuje iterację, aż do osiągnięcia wartości 12, zwiększając i o 2 w każdej iteracji. Dzięki temu osiągamy pożądane liczby: 2, 4, 6, 8, 10 i 12. Użycie operatora inkrementacji (i+=2) jest zgodne z dobrymi praktykami programistycznymi, ponieważ jest bardziej zwięzłe i jednoznaczne w porównaniu do zwiększania zmiennej w każdej iteracji o 1, a następnie dodawania 1 w ciele pętli. W praktyce, można stosować takie podejście do generowania sekwencji liczb w różnych zastosowaniach, na przykład w wizualizacji danych lub grach, gdzie potrzebujemy pracować z parametrami o określonej wartości. Ponadto, pętle w JavaScript są fundamentalnym elementem skryptów, pozwalającym na automatyzację powtarzalnych zadań, co czyni programowanie bardziej efektywnym.

Pytanie 18

Jakie będzie wynik działania programu napisanego w JavaScript, umieszczonego w ramce, kiedy wprowadzisz wartość 5?

var n, i;
var a = 1;

n = prompt("Podaj n:", "");

for (i=n; i>=2; i--)
    a*=i;

document.write("Wynik ",a);
A. 60
B. 125
C. 120
D. 625
Program jest przykładem prostego algorytmu obliczającego silnię liczby n, którą użytkownik wprowadza za pomocą funkcji prompt. Zmienna a jest inicjalizowana wartością 1 i służy do przechowywania wyniku. Pętla for rozpoczyna się od wartości n i zmniejsza wartość i do 2, za każdym razem mnożąc a przez i. Dla n=5 pętla wykona się pięć razy, obliczając kolejno 5*4*3*2*1, co daje wynik 120. Metoda document.write wyświetla wynik na stronie. Rozumienie mechanizmu działania pętli for i operatora *= jest kluczowe w zrozumieniu algorytmów obliczeniowych używanych w programowaniu JavaScript. Silnia jest podstawowym przykładem algorytmu rekurencyjnego, który można również zaimplementować za pomocą funkcji rekurencyjnej, co jest często stosowane w programowaniu funkcyjnym. Znajomość takich konstrukcji pozwala na tworzenie bardziej zaawansowanych algorytmów przetwarzania danych i optymalizację kodu, co jest cenioną umiejętnością w branży IT.

Pytanie 19

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

 function fun1(a, b) {
    if (a % 2 != 0) a++;
    for (n = a; n <= b; n+=2)
        document.write(n);
}
A. wypisanie liczb parzystych z zakresu od a do b
B. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
C. wypisanie wszystkich liczb z zakresu od a do b
D. zwrócenie wartości liczb parzystych od a do b
Odpowiedź "wypisanie liczb parzystych z przedziału od a do b" jest prawidłowa, ponieważ funkcja fun1(a, b) w języku JavaScript ma na celu wyświetlenie wszystkich liczb parzystych w zdefiniowanym zakresie. Funkcja najpierw sprawdza, czy liczba a jest nieparzysta; jeśli tak, to zwiększa ją o 1, co zapewnia, że zaczynamy od najbliższej liczby parzystej. Następnie, za pomocą pętli for, iteruje przez liczby od a do b, zwiększając n o 2 w każdej iteracji. Dzięki temu wypisujemy tylko liczby parzyste. Przykładowo, jeśli a = 3 i b = 9, to funkcja zacznie od 4 i wypisze 4, 6, i 8. Tego typu funkcje są przydatne w różnych kontekstach programistycznych, takich jak generowanie sekwencji liczb dla algorytmów matematycznych, generowanie danych testowych czy też przy pracy z interfejsami użytkownika, gdzie występują interwały liczbowe. Dobrą praktyką jest zawsze jasno określać zakres przetwarzanych danych, co ta funkcja realizuje, zapewniając, że wyniki są zgodne z oczekiwaniami użytkownika.

Pytanie 20

Który z poniższych fragmentów kodu JavaScript zwróci true?

A. "def" > "abc"
B. "a" > "b"
C. "abc" > "def"
D. "ab" > "c"
Porównania 'a' > 'b', 'ab' > 'c' oraz 'abc' > 'def' nie zwracają wartości true z powodu zasad leksykalnego porównania ciągów tekstowych w JavaScript. W pierwszym przypadku, porównując 'a' do 'b', 'a' ma wartość Unicode 97, a 'b' wartość 98. Ponieważ 97 jest mniejsze niż 98, porównanie zwraca false. W drugim przypadku, 'ab' i 'c' są analizowane w ten sposób, że 'a' (97) jest mniejsze niż 'c' (99), co również skutkuje wynikiem false, ponieważ porównanie zaczyna się od pierwszych znaków. Ostatnie porównanie 'abc' > 'def' także zwraca false, ponieważ pierwszy znak 'd' (100) jest większy niż 'a' (97), co sprawia, że całe porównanie jest fałszywe. Warto zauważyć, że w przypadku porównań ciągów tekstowych, wielkość liter ma wpływ na wynik, dlatego 'A' będzie mniejsze od 'a', co może prowadzić do nieporozumień, szczególnie przy pracy z danymi użytkowników lub przy sortowaniu. Zrozumienie tych zasad jest kluczowe dla programistów, aby unikać błędów logicznych w kodzie.

Pytanie 21

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. zmienna x będzie przechowywać wynik działania metody nazwa
B. nazwa jest cechą obiektu przedmiot
C. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
D. nazwa jest atrybutem klasy przedmiot
Zapis przedmiot.nazwa() w języku JavaScript oznacza wywołanie metody nazwa na obiekcie przedmiot. Częstym błędem jest mylenie metody z polem klasy czy właściwością obiektu. Pole klasy odnosi się do zmiennej zdefiniowanej na poziomie klasy która przechowuje dane związane z instancjami tej klasy. Metody natomiast są funkcjami które wykonują operacje na danych obiektu. Jeśli chodzi o zmienną przechowującą wynik działania funkcji przedmiot nie jest to poprawna interpretacja ponieważ przedmiot w tym przypadku jest obiektem na którym działa metoda nazwa a nie funkcją. Kolejny błąd to mylenie wywołania metody z przypisaniem wartości właściwości obiektu. Właściwości to atrybuty które przechowują stany obiektu natomiast metody określają jego zachowanie i umożliwiają wykonywanie czynności. Często podczas nauki JavaScript błędnie interpretujemy składnię kropki jako odnoszącą się tylko do właściwości zamiast dostrzegać że może ona również oznaczać wywołanie metod. Dobra praktyka polega na jasnym rozróżnieniu pomiędzy metodami a właściwościami co zwiększa czytelność i niezawodność kodu ułatwiając jego późniejszą konserwację i rozwój przez zespoły programistyczne

Pytanie 22

W języku JavaScript funkcja getElementById odnosi się do

A. elementu HTML z określoną nazwą klasy
B. elementu HTML z podanym id
C. klasy zdefiniowanej w CSS
D. zmiennej numerycznej
Wybór odpowiedzi dotyczącej zmiennej liczbowej jest błędny, ponieważ metoda getElementById nie odnosi się w żaden sposób do typów danych, takich jak liczby. Metoda ta jest skoncentrowana na manipulacji elementami HTML, a nie na danych. Natomiast powiązanie z klasą zdefiniowaną w CSS jest również mylące. getElementById nie działa na klasach; zamiast tego, aby uzyskać elementy na podstawie klasy, używa się metody getElementsByClassName lub querySelector. Identyfikowanie elementów za pomocą klas nie jest wystarczające, ponieważ może prowadzić do sytuacji, gdzie wiele elementów ma tę samą klasę, co nie jest zgodne z ideą unikalności id. Próba użycia id w kontekście tagów HTML o podanej nazwie klasy również jest błędna, ponieważ id powinno być używane do unikalnego identyfikowania elementów, a klasy służą do grupowania elementów. Niektórzy deweloperzy mogą mylić te dwa koncepty, co prowadzi do nieefektywnego kodu oraz problemów w zarządzaniu stylami i skryptami. W związku z tym, kluczowe jest, aby pamiętać, że getElementById jest dedykowane do pracy z unikalnymi identyfikatorami, a nie z klasami czy innymi typami danych.

Pytanie 23

Aby zmienić wartość atrybutu elementu 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).<nazwa-atrybutu> = <nowa wartość>
C. document.getElementById(id).<nazwa właściwości> = <nowa wartość>
D. document.getElementById(id).innerHTML = <nowa wartość>
Sposoby zapisu w pozostałych odpowiedziach nie są odpowiednie dla zmiany cech elementów opisanych w CSS, co może prowadzić do nieporozumień w zakresie manipulacji stylem w JavaScript. Użycie document.getElementById(id).<nazwa-atrybutu> = <nowa wartość>; może sugerować, że próbujemy ustawić atrybuty HTML, jednak nie odnosi się to do stylów CSS. Atrybuty HTML i style CSS to dwa różne obszary, a manipulowanie stylem wymaga bezpośredniego odniesienia do obiektu style. Podobnie, w przypadku document.getElementById(id).<nazwa właściwości> = <nowa wartość>; wygląd elementu nie jest zmieniany, ponieważ nie wskazujemy na obiekt style, lecz na właściwości samego elementu. Użycie document.getElementById(id).innerHTML = <nowa wartość>; również wprowadza w błąd, ponieważ ta metoda służy do zmiany zawartości HTML wewnątrz danego elementu, a nie stylów. Często pojawia się mylne przekonanie, że można manipulować stylem, używając ogólnych atrybutów lub zawartości, co prowadzi do nieefektywnego i błędnego kodu. Istotne jest zrozumienie, że stylizacja elementów wymaga poprawnej interakcji z obiektem style, co zapewnia jednocześnie zgodność z najlepszymi praktykami programowania i pozwala uniknąć błędów w logice aplikacji.

Pytanie 24

Liczba 0x142, przedstawiona w kodzie JavaScript, przyjmuje formę

A. dwójkową
B. ósemkową
C. szesnastkową
D. dziesiętną
Liczba 0x142 jest zapisana w systemie szesnastkowym, co oznacza, że jest reprezentowana w bazie 16. W systemie szesnastkowym posługujemy się cyframi od 0 do 9 oraz literami od A do F, gdzie A odpowiada 10, B to 11, C to 12, D to 13, E to 14, a F to 15 w systemie dziesiętnym. Przykład zastosowania tego systemu można zauważyć w programowaniu oraz w różnych standardach, takich jak HTML, gdzie kolory są często reprezentowane w formacie szesnastkowym, np. #FFFFFF dla bieli. Można także spotkać się z systemem szesnastkowym w adresacji pamięci oraz w reprezentacji liczb dużych, co jest szczególnie przydatne w kontekście programowania niskopoziomowego i systemów wbudowanych. Zrozumienie różnych systemów liczbowych, w tym szesnastkowego, jest niezbędne dla każdego programisty, szczególnie podczas pracy z danymi binarnymi, hex i podczas obliczeń niskopoziomowych.

Pytanie 25

Definicja obiektu została zapisana w języku JavaScript jako var osoba={imie:"Anna", nazwisko:"Kowalska", rok_urodzenia:1985}; Jak można odwołać się do właściwości nazwisko?

A. osoba[1]
B. osoba[2]
C. osoba::nazwisko
D. osoba.nazwisko
Wszystkie inne odpowiedzi są niepoprawne z różnych powodów technicznych. Pierwsza z nich, osoba[1], opiera się na indeksowaniu tablicy, co jest błędne w kontekście obiektów. W JavaScript obiekty nie mają indeksów; zamiast tego są zorganizowane w pary klucz-wartość, gdzie klucze są nazwami właściwości. Próba uzyskania dostępu do właściwości przez indeksowanie zwróci undefined, ponieważ obiekt nie ma takiego klucza. Kolejna niepoprawna odpowiedź, osoba[2], jest analogicznie błędna, ponieważ odnosi się do drugiego elementu, co również nie ma zastosowania w obiektach. Obiekty w JavaScript nie są tablicami i nie można do nich odwoływać się w sposób, który sugeruje, że mają one numerowane właściwości. Ostatnia odpowiedź, osoba::nazwisko, jest syntaktycznie niepoprawna w JavaScript. Notacja z podwójnymi dwukropkami nie jest stosowana w języku, a niepoprawne użycie operatorów prowadzi do błędów wykonania. W JavaScript poprawny jest tylko dostęp przez notację kropkową lub nawiasową, ponieważ język nie wspiera takiej składni. Te pomyłki mogą wynikać z nieporozumienia w zakresie struktur danych w JavaScript oraz ich właściwego dostępu.

Pytanie 26

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. NaN
C. zmiennoprzecinkowego
D. liczbowego, całkowitego
Typowe błędy myślowe mogą prowadzić do mylnego rozumienia, że zmienna x mogłaby przyjąć postać NaN, czyli "Not-a-Number". NaN pojawia się, gdy operacje matematyczne są wykonywane na danych, które nie mogą być zinterpretowane jako liczby. Jednakże w kontekście użycia funkcji parseFloat(), jeśli a nie zawiera prawidłowej liczby, to wynikiem będzie NaN, ale nie oznacza to, że z definicji x zawsze będzie NaN. Istnieje również przekonanie, że parseFloat() może zwrócić typ napisowy. W rzeczywistości, funkcja ta zawsze stara się zwrócić typ liczbowy - w przypadku błędnych danych wynik będzie NaN, a nie typem string. Z kolei odpowiedź, że zmienna x będzie liczbą całkowitą jest myląca, ponieważ parseFloat() specjalizuje się w konwersji na liczby zmiennoprzecinkowe, a nie całkowite. W JavaScript, liczby całkowite także są traktowane jako liczby zmiennoprzecinkowe, co może wprowadzać w błąd. Aby zrozumieć, jak działa konwersja typów w JavaScript, warto zaznajomić się z zasadami typowania dynamicznego oraz metodami konwersji danych, takimi jak parseInt() dla liczb całkowitych. Przykłady poprawnych i niepoprawnych danych wejściowych mogą wyjaśnić, dlaczego zrozumienie typów danych i konwersji jest kluczowe w programowaniu.

Pytanie 27

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

document.write(5==='5');
A. false
B. 0
C. 1
D. true
Instrukcja JavaScript użyta w tym przykładzie wykorzystuje operator potrójnego równości === który jest używany do porównywania wartości i typu danych. W przeciwieństwie do podwójnego równości == który porównuje tylko wartości potrójne równości wymaga aby zarówno typ jak i wartość były identyczne. W przedstawionym kodzie porównywana jest liczba 5 z ciągiem znaków '5'. Chociaż mają tę samą widoczną wartość ich typy danych są różne. Liczba jest typem numericznym podczas gdy '5' jest ciągiem znaków. Ponieważ typy danych nie są identyczne operator === zwróci wartość false. Operator potrójnego równości jest preferowany w dobrych praktykach branżowych JavaScript ponieważ eliminuje problemy wynikające z niejawnej konwersji typów co może prowadzić do nieoczekiwanych wyników. Użycie potrójnego równości poprawia czytelność kodu i jego niezawodność ponieważ zmusza programistę do świadomego zwracania uwagi na typy danych co jest szczególnie ważne w złożonych aplikacjach gdzie takie błędy mogą skutkować trudnymi do wykrycia problemami. Praktyka ta jest zalecana w celu utrzymania wysokiej jakości i przewidywalności działania aplikacji webowych.

Pytanie 28

W podanym kodzie JavaScript występuje błąd logiczny. Program ma za zadanie wyświetlić informację, czy liczby są równe, jednak nie działa poprawnie. Wskaż, która odpowiedź odnosi się do tego błędu.

A. W klauzuli if użyto przypisania zamiast porównania
B. Zawartość sekcji if oraz else powinna być zamieniona miejscami
C. Brak średnika przed klauzulą else
D. Zmienne zostały zadeklarowane w niewłaściwy sposób
W kontekście analizy błędów w kodzie JavaScript, istnieje kilka odpowiedzi, które nie są poprawne. Po pierwsze, stwierdzenie, że zmienne zostały nieprawidłowo zadeklarowane, jest mylące. W rzeczywistości zmienne x i y zostały zadeklarowane poprawnie za pomocą słowa kluczowego var, co jest standardową praktyką w JavaScript. Wartości, które przypisano do tych zmiennych, są również poprawne i zgodne z typem liczbowym. Po drugie, stwierdzenie, że przed klauzulą else nie powinno być średnika, również nie jest adekwatne. W JavaScript średnik jest opcjonalny na końcu instrukcji, a jego brak w tym przypadku nie wpływa na działanie programu. Klauzula else działa prawidłowo, niezależnie od obecności średnika w kodzie. Ponadto, twierdzenie, że instrukcje wewnątrz sekcji if oraz else powinny być zamienione miejscami, jest błędne, ponieważ logika programu nie wymaga takiej zamiany. Program powinien najpierw sprawdzić, czy zmienne są równe, a następnie zareagować w zależności od wyniku tego porównania. Właściwa struktura kontrolna jest kluczowa dla poprawności działania kodu, dlatego zamiana sekcji if i else prowadziłaby do wyświetlania błędnych komunikatów.

Pytanie 29

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

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

Pytanie 30

Aby sprawdzić, czy kod JavaScript działa poprawnie, należy skorzystać z

A. interpretera PERL
B. interpretera PHP
C. konsoli w przeglądarce internetowej
D. kompilatora C++
Odpowiedzi, które mówią o interpreterach lub kompilatorach innych języków, nie są dobre, jeśli mówimy o testowaniu kodu JavaScript. Na przykład, interpreter PHP dotyczy zupełnie innego języka, który służy głównie do robienia dynamicznych stron internetowych. Podobnie z kompilatorami C++, które zamieniają kod C++ na pliki wykonywalne, więc nie mają nic wspólnego z JavaScript. Nawet interpreter PERL, mimo że to język skryptowy, nie może być użyty do testowania JavaScript. JavaScript działa w przeglądarkach i korzysta z silników takich jak V8 w Chrome czy SpiderMonkey w Firefoxie. Z tego powodu najlepszym wyborem do testowania kodu JavaScript jest konsola w przeglądarkach, bo jest zaprojektowana specjalnie do tego celu.

Pytanie 31

W języku JavaScript zapisano funkcję. Co ona ma za zadanie.

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f
}
A. zwrócić wartość odwrotną do f
B. wypisać wartość odwrotną do f
C. zwrócić wartość bezwzględną z f
D. wypisać wartość bezwzględną z f
Niepoprawna odpowiedź wskazuje, że funkcja ma za zadanie zwrócić wartość odwrotną do f, lub wypisać wartość bezwzględną z f, lub wypisać wartość odwrotną do f. Te wszystkie odpowiedzi są błędne. Wartość odwrotna do f to 1/f, a nie wartość bezwzględna z f. Wypisanie wartości to inny rodzaj operacji niż jej zwrócenie. Funkcje wypisują wartość, kiedy używamy instrukcji console.log() w JavaScript. Zwrócenie wartości oznacza, że funkcja po zakończeniu swojego działania przekazuje tę wartość do miejsca, skąd została wywołana. Zwracanie wartości jest podstawą działania większości funkcji, które następnie używane są do budowy bardziej skomplikowanych algorytmów. Dlatego też ważne jest, aby dobrze rozumieć, jakie wartości są zwracane przez różne typy funkcji.

Pytanie 32

Elementem, który odnosi się do imienia Agata w pokazanej tablicy JavaScript, jest

Ilustracja do pytania
A. Imiona['Agata']
B. Imiona[4]
C. Imiona[Agata]
D. Imiona[3]
JavaScript ma fajne tablice, które pozwalają trzymać różne wartości w jednej zmiennej. Pamiętaj, że w tablicach numerację zaczynamy od zera, więc pierwszy element to 0. W naszym przypadku mamy tablicę Imiona z pięcioma imionami: Anna, Joanna, Monika, Agata. Żeby dostać się do czwartego imienia, musisz użyć indeksu 3, czyli Imiona[3]. To standardowa zasada w JavaScript i naprawdę w wielu innych językach programowania, więc warto się tego nauczyć. W praktyce umiejętność indeksowania tablic jest bardzo ważna, zwłaszcza gdy chcesz przefiltrować, posortować albo po prostu przejść przez dane. Dlatego dobrze jest zapamiętać, jak działa indeksowanie zerowe, bo to kluczowa rzecz dla każdego, kto pracuje z danymi w tym języku.

Pytanie 33

W JavaScript, funkcja matematyczna Math.pow() jest wykorzystywana do obliczania

A. potęgi liczby
B. wartości bezwzględnej liczby
C. pierwiastka kwadratowego liczby
D. wartości przybliżonej liczby
Wszystkie pozostałe odpowiedzi są niepoprawne, ponieważ nie odzwierciedlają funkcji Math.pow(). Pierwsza z nich sugeruje, że Math.pow() oblicza wartości przybliżone liczby, co jest błędne, ponieważ ta funkcja zwraca dokładny wynik potęgowania, a nie przybliżenie. W przypadku, gdybyśmy potrzebowali wartości przybliżonej, musielibyśmy używać innych metod, takich jak Math.round(), Math.ceil() lub Math.floor(). Druga błędna odpowiedź sugeruje, że funkcja ta wyznacza wartości bezwzględne liczby. Wartość bezwzględna jest obliczana za pomocą Math.abs(), która zwraca dodatnią wartość liczby, podczas gdy Math.pow() ma zupełnie inny cel. Ostatnia odpowiedź, dotycząca pierwiastka kwadratowego liczby, również jest myląca. Pierwiastek kwadratowy można obliczyć za pomocą funkcji Math.sqrt(), która zwraca pierwiastek kwadratowy danej liczby, podczas gdy Math.pow() jest używana do potęgowania. W związku z tym, ważne jest, aby prawidłowo rozumieć funkcje matematyczne w JavaScript i wiedzieć, do czego są one przeznaczone, aby skutecznie je wykorzystywać w programowaniu.

Pytanie 34

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

A. w zmiennej x minimalna wartość ze zmiennych a, b, c
B. nieprawidłowe dane
C. w zmiennej x maksymalna wartość ze zmiennych a, b, c
D. wybór wartości maksymalnej spośród zmiennych a, b oraz c
W analizowanych odpowiedziach znajdują się stwierdzenia, które nie oddają rzeczywistego działania funkcji wykorzystywanej w tej linii kodu. Stwierdzenie dotyczące wyboru losowej wartości ze zmiennych a, b i c jest błędne, ponieważ funkcja Math.max nie dokonuje wyboru losowego, ale precyzyjnie analizuje wartości i zwraca największą z nich. Takie myślenie może prowadzić do poważnych nieporozumień w kontekście programowania, gdzie deterministyczne wyniki są kluczowe. Inne z kolei stwierdzenie, że w zmiennej x znajduje się minimalna wartość ze zmiennych a, b, c, jest całkowicie sprzeczne z logiką funkcji Math.max, która z definicji nakazuje jej zwracać maksymalną, a nie minimalną wartość. Użytkownik, bazując na tym błędnym rozumowaniu, mógłby wprowadzić niepoprawne dane do dalszego przetwarzania. Natomiast ostatnia błędna odpowiedź sugerująca, że zmienna x zawiera maksymalną wartość bez uwzględnienia kontekstu, jest niepoprawna w tym sensie, że nie precyzuje, iż funkcja Math.max porównuje konkretnie wartości a, b i c. Aby uniknąć takich nieporozumień, ważne jest zrozumienie mechanizmu działania wbudowanych funkcji w JavaScript oraz ich zastosowania w praktyce.

Pytanie 35

W JavaScript poprawnie zdefiniowana zmienna to

A. imie2
B. imię%
C. imię2
D. #imie
Odpowiedź 'imie2' jest prawidłowa, ponieważ spełnia wszystkie zasady dotyczące nazewnictwa zmiennych w języku JavaScript. Zgodnie z tymi zasadami, nazwy zmiennych mogą zaczynać się od litery (a-z, A-Z), znaku podkreślenia (_) lub znaku dolara ($). Następnie, dozwolone są litery, cyfry (0-9), znaki podkreślenia oraz znaki dolara. Nazwa 'imie2' jest zgodna z tymi zasadami, ponieważ zaczyna się od litery, a następnie zawiera cyfrę, co jest akceptowalne. Przykładowo, dobra praktyka w programowaniu polega na nadawaniu zmiennym nazw związanych z ich przeznaczeniem, na przykład 'userAge' dla wieku użytkownika. Warto pamiętać, że unikanie użycia polskich znaków oraz specjalnych symboli w nazwach zmiennych, takich jak znaki procentu czy hashtagi, zwiększa czytelność i przenośność kodu, szczególnie w międzynarodowych projektach. Dobra praktyka sugeruje również używanie camelCase, co ułatwia identyfikację zmiennych w większych projektach.

Pytanie 36

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. VBScript
B. PHP
C. XML
D. AJAX
PHP, VBScript i XML to technologie, które w kontekście pytania nie pełnią roli techniki asynchronicznej komunikacji między klientem a serwerem. PHP to język skryptowy wykorzystywany głównie po stronie serwera do generowania dynamicznych treści HTML. Jego działanie polega na przetwarzaniu kodu na serwerze przed wysłaniem strony do klienta, co nie pozwala na asynchroniczną komunikację. VBScript, z kolei, to język skryptowy stworzone przez Microsoft, który jest używany głównie w kontekście aplikacji Windows i nie jest standardem w programowaniu po stronie klienta. Nie jest on także szeroko wspierany w nowoczesnych przeglądarkach internetowych. XML (Extensible Markup Language) to format wymiany danych, który może być używany z AJAX-em, ale sam w sobie nie jest techniką komunikacyjną. Często błędne podejście do tematu polega na myleniu formatu wymiany danych z metodą komunikacji. Użytkownicy mogą sądzić, że XML może zastąpić AJAX, co jest nieprawidłowe, ponieważ XML służy jako format danych, a nie jako mechanizm do asynchronicznej wymiany. Warto zrozumieć, że skuteczne projekty webowe opierają się na zintegrowanym stosie technologii, a nie tylko na pojedynczych elementach. Praktyki takie jak RESTful API czy SOAP są bardziej związane z AJAX-em, podczas gdy PHP i inne technologie serwerowe pełnią inną rolę w architekturze aplikacji.

Pytanie 37

W języku JavaScript zdefiniowano obiekt ```obiekt = { q: 1, w: 2, e: 3, r: 4 };``` W jaki sposób można uzyskać wartość właściwości ```w```?

A. obiekt.w
B. obiekt::w
C. obiekt->w
D. obiekt:w
Niepoprawne odpowiedzi wskazują na nieporozumienia dotyczące składni języka JavaScript. Użycie obiekt:w sugeruje, że istnieje jakiś operator dostępu do właściwości za pomocą dwukropka, co jest niezgodne z zasadami składniowymi JavaScript. W rzeczywistości dwukropek w tym kontekście nie ma znaczenia i jest błędnie interpretowany. Podobnie, obiekt::w użytkuje podwójny dwukropek, co z kolei jest składnią nieznaną w JavaScript i nie ma zastosowania w kontekście odwoływania się do właściwości obiektu. Z kolei obiekt->w sugeruje, że programista próbuje skorzystać z operatora strzałki, który występuje w innych językach programowania, takich jak C++ czy PHP, ale nie jest on używany w JavaScript. W JavaScript stosuje się wyłącznie notację kropkową lub nawiasową do odwoływania się do właściwości obiektów. Chociaż różne języki programowania mogą mieć swoje własne konwencje dotyczące operatorów dostępu do właściwości, JavaScript pozostaje konsekwentny w swojej składni, co ułatwia zrozumienie i naukę. Ważne jest, aby programiści zapoznali się z podstawami składni JavaScript, aby unikać takich błędów i poprawnie wykorzystywać możliwości obiektowego modelu tego języka.

Pytanie 38

W skrypcie JavaScript zmienne mogą być definiowane

A. wyłącznie na początku skryptu
B. zawsze poprzedzone znakiem $ przed nazwą
C. w chwili pierwszego użycia zmiennej
D. jedynie wtedy, gdy podamy typ zmiennej oraz jej nazwę
W języku JavaScript zmienne mogą być zadeklarowane w momencie ich pierwszego użycia dzięki mechanizmowi hoisting. Oznacza to, że silnik JavaScript przenosi deklaracje zmiennych na początek ich zasięgu, co pozwala na ich użycie w kodzie przed ich faktycznym zadeklarowaniem. Przykładem może być sytuacja, gdy zmienną deklarujemy za pomocą słowa kluczowego 'let' lub 'const'. Chociaż sama deklaracja jest hoistowana, to inicjalizacja zmiennej pozostaje w miejscu, co oznacza, że nie można jej używać przed faktycznym przypisaniem wartości. Dobrą praktyką jest zawsze deklarowanie zmiennych przed ich użyciem, aby uniknąć niejasności i błędów, takich jak ReferenceError. Warto również zauważyć, że JavaScript pozwala na dynamiczne typowanie, więc nie trzeba określać typu zmiennej przy jej deklaracji, co zwiększa elastyczność i uproszcza kod.

Pytanie 39

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 40

Wskaż, który z poniższych jest poprawnym zapisem zmiennej w języku JavaScript.

A. const var-name = 10;
B. let variableName = 10;
C. var 2nameVar = 10;
D. var $name@ = 10;
W języku JavaScript deklaracja zmiennej przy użyciu słowa kluczowego <code>let</code> jest obecnie jedną z najczęściej stosowanych praktyk. Ma ona na celu stworzenie zmiennej o zasięgu blokowym, co oznacza, że zmienna jest dostępna tylko w obrębie bloku kodu, w którym została zadeklarowana. To podejście pozwala na bardziej elastyczne i bezpieczne zarządzanie zmiennymi w kodzie, minimalizując ryzyko błędów związanych z niezamierzonym nadpisywaniem wartości. Zmienna <code>variableName</code> jest poprawnie zapisana zgodnie z konwencjami JavaScript: zaczyna się od litery i składa się wyłącznie z liter oraz cyfr. Wartość 10 przypisana do tej zmiennej to liczba całkowita. Deklaracja <code>let</code> jest preferowana w stosunku do <code>var</code> z uwagi na lepsze zarządzanie zasięgiem i uniknięcie problemów związanych z hoistingiem. Ponadto, stosowanie jasnych i opisowych nazw zmiennych, jak <code>variableName</code>, jest dobrą praktyką programistyczną, ułatwiającą zrozumienie i utrzymanie kodu.