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: 11 sierpnia 2026 17:54
  • Data zakończenia: 11 sierpnia 2026 18:17

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

Nowe
Analiza przebiegu egzaminu- sprawdź jak rozwiązywałeś pytania
Udostępnij swój wynik
Szczegółowe wyniki:
Pytanie 1

Jaki znak (lub znaki) rozpoczyna komentarz jednoliniowy w języku JavaScript?

A.
//
B.
<!--
C.
#
D.
<?
W JavaScript komentarz jednoliniowy rozpoczyna się od // - wszystko za nim, do końca wiersza, interpreter pomija. Komentarz wieloliniowy ujmuje się natomiast w /* ... */. Komentarze służą do opisu kodu i czasowego wyłączania fragmentów; nie wpływają na działanie programu. Dlatego komentarz jednoliniowy w JS otwiera //.

Pytanie 2

W przedstawionym kodzie JavaScript występuje błąd logiczny. Program, zamiast informować, czy liczby są równe, nie działa prawidłowo. Wskaż, która odpowiedź dotyczy tego błędu.

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
B. W instrukcji if znajduje się przypisanie zamiast operacji porównania
C. Zmienne zostały błędnie zadeklarowane
D. Przed instrukcją else nie powinno być średnika
Kod JavaScript z błędem logicznym w pytaniu ma na celu sprawdzenie równoważności dwóch zmiennych, jednak ze względu na użycie niewłaściwego operatora nie działa poprawnie. W przypadku stwierdzenia, że przed klauzulą else nie powinno być średnika, należy zrozumieć, że w JavaScript średnik wskazuje koniec instrukcji i jego obecność lub brak bezpośrednio przed else może zmienić logikę kodu, ale nie w tym kontekście. Jeśli chodzi o błędne przypisanie zamiast porównania w instrukcji if, właściwe używanie operatorów przypisania i porównania jest kluczowe, ponieważ ich zamiana prowadzi do logicznych błędów, które mogą być trudne do zdiagnozowania. Natomiast nieprawidłowa deklaracja zmiennych w JavaScript może wpływać na zakres lub sposób ich użycia, ale tutaj zmienne są poprawnie zadeklarowane za pomocą var, choć nowoczesne standardy promują let lub const dla lepszej kontroli zakresu. Na koniec, zamiana miejsc instrukcji wewnątrz sekcji if oraz else prowadzi jedynie do zmiany logicznej kolejności akcji bez rozwiązywania błędu pierwotnego, jakim jest użycie niewłaściwego operatora porównania. Kluczowym jest tu zrozumienie, że zrozumienie i poprawne stosowanie operatorów logicznych jest fundamentalne w pisaniu poprawnego kodu.

Pytanie 3

W języku JavaScript rezultat wykonania polecenia

zmienna1 -= 1;
będzie tożsamy z wynikiem polecenia
A. zmienna1++;
B. zmienna1 = zmienna1 - 0;
C. zmienna1 === zmienna1 - 1;
D. zmienna1--;
Istnieje wiele koncepcji, które mogą prowadzić do błędnych wniosków dotyczących działania przypisania i operatorów w JavaScript. Zaczynając od zmienna1++, jest to operator inkrementacji, który zwiększa wartość zmiennej o jeden, a nie ją zmniejsza. W związku z tym, ta odpowiedź jest zasadniczo błędna, ponieważ zmienia wartość w przeciwnym kierunku. Kolejna odpowiedź, zmienna1 === zmienna1 - 1;, wyraża porównanie logiczne, które sprawdza, czy zmienna1 jest równa zmiennej zmniejszonej o jeden. Nie jest to tożsame z wykonaniem dekrementacji i wprowadza dodatkowe zamieszanie, gdyż nie zmienia wartości zmiennej, a jedynie zwraca wartość logiczną (true lub false). Natomiast zmienna1 = zmienna1 - 0; jest także błędna, gdyż ta instrukcja nie wpływa na wartość zmiennej, jedynie przypisuje jej tę samą wartość, co również nie jest zgodne z celem dekrementacji. Takie nieporozumienia mogą wynikać z braku znajomości podstawowych operatorów i ich zastosowania, co jest kluczowe w programowaniu. Ważne jest, aby zrozumieć, że operatorzy wpływają na zmiany wartości, a nie tylko na ich porównania. Warto także pamiętać, że efektywne pisanie kodu powinno opierać się na zrozumieniu działania operatorów, co przyczyni się do tworzenia kodu, który jest zarówno funkcjonalny, jak i łatwy do zrozumienia w kontekście współpracy w zespole programistycznym.

Pytanie 4

Jaką wartość wyświetli się po uruchomieniu poniższego kodu JavaScript?

javascript
document.write(Math.round(4.51) + Math.pow(2, 3));
A. 12
B. 11
C. 13
D. 14
Przyjrzyjmy się innym odpowiedziom. Widać, że każda z nich ma jakieś błędy w zrozumieniu działania funkcji w kodzie. Niepoprawne odpowiedzi proponują różne sumy, ale są one wynikiem złych obliczeń. No bo na przykład, 11 wychodzi tylko z 4 + 7, ale to nie ma zastosowania w tym przypadku, bo zaokrąglanie i potęgowanie dają inne wartości. Liczba 12 mogłaby być wynikiem zaokrąglenia do 4 i zmniejszenia 8 z Math.pow(2, 3), ale to też nie zgadza się z tym, co wyszło. Z kolei 14 jako suma 6 i 8 jest mylna, bo 6 nie jest wynikiem zaokrąglenia 4.51, tylko 5. Jak analizujemy Math.round i Math.pow, to widzimy, że są zgodne z dokumentacją ECMAScript, co daje solidne podstawy do obliczeń. Jak nie rozumiemy tych funkcji, to łatwo o błędy, więc warto znać podstawowe operacje matematyczne w programowaniu.

Pytanie 5

W dokumencie HTML zdefiniowano pewne elementy w klasie o nazwie "nomargin". W celu przeprowadzenia operacji na tych elementach za pomocą języka JavaScript, można wykorzystać funkcję

A. getElementsByTagName("nomargin")
B. getElementById("nomargin")
C. getElement("nomargin")
D. getElementsByClassName("nomargin")
Niepoprawność wybranych odpowiedzi wynika z niewłaściwego rozumienia zasad selekcji elementów w DOM przy użyciu JavaScript. Funkcja getElement("nomargin") nie istnieje w standardowym API JavaScript, co sprawia, że nie może zostać zastosowana do uzyskania elementów na stronie. Wybranie tej opcji świadczy o braku znajomości dostępnych metod w obiekcie document. Podobnie, zastosowanie getElementById("nomargin") jest niewłaściwe, ponieważ ta metoda działa jedynie na elementach, które mają unikalny identyfikator (id). Zgodnie z zasadami HTML, identyfikatory muszą być unikalne w obrębie dokumentu, co oznacza, że nie można przypisać tej samej wartości id wielu elementom. Dlatego wybór tej metody wskazuje na nieporozumienie dotyczące struktury HTML oraz zasad dotyczących unikalności identyfikatorów. Ponadto, getElementsByTagName("nomargin") jest również błędne, ponieważ ta metoda służy do selekcji elementów na podstawie ich nazwy tagu, a nie klasy. W praktyce, błędne podejście do selekcji może prowadzić do błędów w manipulacji DOM oraz obniżenia wydajności aplikacji, gdyż niewłaściwie wybrane metody mogą nie zwracać oczekiwanych wyników. Warto więc zapoznać się z dokumentacją i zrozumieć, jakie metody są dostępne oraz w jakim kontekście można je stosować, aby poprawnie działać w środowisku JavaScript.

Pytanie 6

Podany fragment dokumentu HTML zawierający kod JavaScript sprawi, że po naciśnięciu przycisku

Ilustracja do pytania
A. obraz1.png zostanie wymieniony na obraz2.png
B. obraz2.png zostanie wymieniony na obraz1.png
C. obraz2.png zostanie zniknięty
D. obraz1.png zostanie zniknięty
Załączony fragment kodu HTML pokazuje dwa elementy img oraz przycisk. Obrazek obraz2.png ma przypisany atrybut id o wartości id1. W kodzie JavaScript przypisanym do zdarzenia onclick przycisku wykorzystywana jest metoda document.getElementById('id1').style.display='none'. Ta metoda odwołuje się bezpośrednio do elementu o identyfikatorze id1 czyli obrazka obraz2.png i zmienia jego styl CSS display na none. W praktyce oznacza to że element ten zostanie ukryty na stronie po naciśnięciu przycisku. Praktyczne zastosowanie tej techniki to dynamiczne zarządzanie widocznością elementów na stronie bez konieczności jej przeładowania co poprawia doświadczenie użytkownika. Tego typu manipulacje DOM (Document Object Model) są podstawą interaktywnych aplikacji webowych i są powszechnie używane w nowoczesnym programowaniu JavaScript. Dobrym standardem jest jednak unikanie bezpośredniego pisania skryptów JavaScript w HTML co poprawia czytelność kodu i jego utrzymywalność

Pytanie 7

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie (100, 200>, należy użyć następującego zapisu:

A. If (liczba < 100 && liczba <=200)
B. If (liczba > 100 && liczba <=200)
C. If (liczba > 100 || liczba <=200)
D. If (liczba < 100 || liczba >=200)
Wyrażenie warunkowe 'if (liczba > 100 && liczba <= 200)' jest całkiem dobrze skonstruowane. Precyzyjnie wskazuje, że interesują nas liczby od 101 do 200, z tym że 200 jest uwzględniona, a 100 już nie. Operator '&&' (AND) działa tutaj, bo musi być spełniony zarówno pierwszy, jak i drugi warunek, co jest bardzo istotne w tym przypadku. W praktyce takie warunki można często spotkać w aplikacjach webowych, szczególnie przy walidacji danych. Na przykład w formularzach, gdzie użytkownicy muszą podać wartości mieszczące się w danym zakresie. Umiejętne korzystanie z operatorów logicznych to dobra praktyka w programowaniu. Dzięki temu kod jest bardziej czytelny oraz łatwiejszy do utrzymania. Warto też pamiętać, że różne biblioteki i frameworki mają własne metody walidacji, ale znajomość podstawowych zasad programowania w JavaScript jest kluczowa, żeby móc je dobrze wykorzystywać.

Pytanie 8

W skrypcie JavaScript zmienne mogą być definiowane

A. jedynie wtedy, gdy podamy typ zmiennej oraz jej nazwę
B. wyłącznie na początku skryptu
C. zawsze poprzedzone znakiem $ przed nazwą
D. w chwili pierwszego użycia zmiennej
Wykorzystanie zmiennych w JavaScript jest bardziej elastyczne i złożone, niż sugerują tego niektóre odpowiedzi. Faktem jest, że w JavaScript nie ma wymogu deklarowania zmiennych na początku skryptu. Odpowiedź sugerująca, że zmienne mogą być deklarowane tylko na początku, jest nieprawidłowa, ponieważ JavaScript pozwala na deklarację w dowolnym miejscu kodu, a silnik interpretuje zmienne zgodnie z regułami hoistingu. Kolejna niepoprawna koncepcja związana jest z mylnym przekonaniem, że wcześniej należy określić typ zmiennej. JavaScript jest językiem dynamicznie typowanym, co oznacza, że nie jest konieczne podawanie typu przy deklaracji zmiennej. Dla przykładu, w wielu językach programowania, jak Java czy C#, typ musi być jawnie określony, lecz w JavaScript nie jest to wymagane, co czyni kod bardziej zwięzłym i elastycznym. Ponadto, stwierdzenie, że zmienne w JavaScript muszą być poprzedzone znakiem '$', również jest błędne. Chociaż '$' jest dozwolony w nazwach zmiennych, nie jest to wymóg. Dobre praktyki programistyczne sugerują, aby nazwy zmiennych były zrozumiałe i opisywały ich zawartość, co zwiększa czytelność kodu. W związku z tym, zrozumienie, jak i gdzie można deklarować zmienne w JavaScript, jest kluczowe dla efektywnego pisania kodu w tym języku.

Pytanie 9

W języku JavaScript właściwie zdefiniowana zmienna to

A. imie2
B. #imie
C. imię2
D. imię%
W języku JavaScript, poprawne nadawanie zmiennych jest kluczowym elementem programowania, który opiera się na zdefiniowanych zasadach dotyczących identyfikatorów. Zmienna musi zaczynać się od litery, znaku podkreślenia (_) lub znaku dolara ($), a następnie może zawierać litery, cyfry, znaki podkreślenia oraz znaki dolara. W przypadku odpowiedzi 'imie2', zaczyna się ona od litery i zawiera literę oraz cyfrę, co czyni ją poprawnym identyfikatorem. Zgodnie ze standardem ECMAScript, identyfikatory są rozróżniane na wielkie i małe litery, co oznacza, że 'Imie2' i 'imie2' będą traktowane jako różne zmienne. Praktycznym przykładem poprawnego użycia takiej zmiennej może być zapis: let imie2 = 'Jan'; console.log(imie2);. W wyniku tego, konsola wyświetli 'Jan'. Można również zauważyć, że zgodnie z zasadami, zmienne mogą być oznaczone jako let, const lub var, co dodaje elastyczności podczas deklaracji zmiennych w kodzie JavaScript.

Pytanie 10

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

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

Pytanie 11

Kod JavaScript uruchomiony w wyniku kliknięcia przycisku ma na celu <img id="i1" src="obraz1.gif"> <button onclick="document.getElementById('i1').src='obraz2.gif'"> test</button>

A. wyświetlić obraz2.gif obok obraz1.gif
B. zmienić styl obrazu o id równym i1
C. zamienić obraz1.gif na obraz2.gif
D. ukryć obraz2.gif
Odpowiedź 'zamienić obraz1.gif na obraz2.gif' jest poprawna, ponieważ kod JavaScript w przycisku jest odpowiedzialny za zmianę źródła obrazu. W momencie kliknięcia przycisku, funkcja `document.getElementById('i1').src='obraz2.gif'` przypisuje nowe źródło do elementu o identyfikatorze 'i1', co efektywnie powoduje wyświetlenie obraz2.gif zamiast obraz1.gif. Tego typu manipulacje DOM są powszechnie stosowane w interaktywnych aplikacjach webowych, gdzie użytkownik wchodzi w interakcję z różnymi elementami. Przykładem zastosowania tej techniki może być tworzenie galerii zdjęć, gdzie użytkownik klika na miniaturkę, a główny obrazek zostaje zmieniony na wybrane zdjęcie. Warto również zauważyć, że ta zmiana jest realizowana bez potrzeby reładowania strony, co znacząco poprawia doświadczenie użytkownika. Takie podejście jest zgodne z dobrymi praktykami w zakresie tworzenia dynamicznych interfejsów użytkownika.

Pytanie 12

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

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

Pytanie 13

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

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

Pytanie 14

Kod źródłowy przedstawiony poniżej ma na celu wyświetlenie

Ilustracja do pytania
A. losowych liczb od 0 do 100, aż do wylosowania wartości 0
B. liczb wprowadzonych z klawiatury, aż do momentu wprowadzenia wartości 0
C. ciągu liczb od 1 do 100
D. wylosowanych liczb z zakresu od 1 do 99
Programowanie wymaga precyzyjnego zrozumienia działania każdej instrukcji oraz wpływu na końcowy wynik. W przypadku omawianego pytania kilka błędnych koncepcji mogło wprowadzić w błąd. Po pierwsze założenie że kod wyświetla wylosowane liczby od 1 do 99 jest nieprawidłowe ponieważ używana funkcja rand(0 100) pozwala na losowanie liczb od 0 do 100 włącznie. Należy zauważyć że zrozumienie zakresu generowanych wartości przez funkcje losujące jest kluczowe zwłaszcza w aplikacjach wymagających precyzyjnego sterowania zakresem danych wejściowych. Druga potencjalna pomyłka to przypisanie kodowi zadania wyświetlania kolejnych liczb od 1 do 100 co w rzeczywistości wymagałoby zupełnie innej konstrukcji pętli najlepiej for z precyzyjnie określonym zakresem liczbowym. Trzecim nieporozumieniem mogłoby być przyjęcie że program wczytuje liczby z klawiatury dopóki nie zostanie wpisane zero co sugerowałoby użycie funkcji pobierającej dane od użytkownika jak np. scanf w języku C lub input w Pythonie. Zrozumienie różnicy między pobieraniem danych od użytkownika a losowaniem z automatycznie generowanego przedziału jest istotne przy tworzeniu interaktywnych aplikacji. Rozróżnienie tych mechanizmów umożliwia tworzenie bardziej złożonych i elastycznych programów które mogą reagować na różne źródła danych oraz zmieniające się warunki w środowisku uruchomieniowym. Poprawne rozumienie i wykorzystanie tych koncepcji jest fundamentalne dla efektywnego tworzenia oprogramowania i optymalizacji procesów programistycznych.

Pytanie 15

Zapis przedstawiony w języku JavaScript oznacza, że

x = przedmiot.nazwa();
A. zmienna x będzie przechowywać wynik działania funkcji przedmiot.
B. nazwa to pole klasy przedmiot.
C. zmienna x będzie przechowywać wynik działania metody nazwa.
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 16

W języku JavaScript zdefiniowano następującą funkcję:

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Wypisać wartość bezwzględną argumentu f
B. Wypisać wartość odwrotną do argumentu f
C. Zwrócić wartość bezwzględną argumentu f
D. Zwrócić wartość odwrotną do argumentu f
Niepoprawne odpowiedzi wynikają z niepełnego zrozumienia funkcji i jej założeń. Wypisanie wartości bezwzględnej z f sugerowałoby że funkcja korzysta z mechanizmu wyjściowego takiego jak console.log co nie ma miejsca w tym przypadku. Funkcja jedynie zwraca wynik za pomocą return a nie wypisuje go na konsolę. Zwrócenie wartości odwrotnej do f oznaczałoby że funkcja miałaby inny cel: przekształcenie liczby na jej odwrotność czyli wartość 1/f co wymagało by dodatkowej logiki i warunkowania aby uniknąć dzielenia przez zero. Podobnie wypisanie wartości odwrotnej do f również wskazywałoby na potrzebę użycia mechanizmu wyjściowego a nie tylko return. Kluczowym błędem w takich rozumowaniach jest nieodróżnianie funkcji zwracających wartość od tych które wypisują wynik oraz niedocenienie znaczenia przekształcania wartości co jest fundamentem programowania funkcyjnego. Dobre praktyki programistyczne wymagają jasno zdefiniowanego celu funkcji co w tym przypadku jest poprawnie zrealizowane poprzez zwracanie wartości bezwzględnej co jest częstym i użytecznym wzorcem w wielu zastosowaniach praktycznych.

Pytanie 17

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

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

Pytanie 18

W języku JavaScript, aby zweryfikować, czy liczba mieści się w zakresie (100;200>, należy użyć zapisu:

A. if (liczba > 100 && liczba <= 200)
B. if (liczba < 100 || liczba >= 200)
C. if (liczba < 100 && liczba <= 200)
D. if (liczba > 100 || liczba <= 200)
Zaznaczyłeś odpowiedź 'if (liczba > 100 && liczba <= 200)', i to jest całkiem trafne! Warunek ten sprawdza, czy liczba jest w przedziale od 100 do 200, co jest mega ważne. Wiesz, '>' oznacza, że liczba musi być większa niż 100, a '<=' pozwala na 200, ale nic większego. To coś, co często wykorzystujemy w programach, żeby kontrolować dane od użytkowników. Jak na przykład przy rejestracji – chcemy mieć pewność, że wszystko jest w normie. Umiejętność walidacji danych to kluczowa sprawa w programowaniu, bo dzięki temu możemy unikać różnych błędów. Fajnie, że zauważasz, jak operatory logiczne, takie jak '&&', mogą pomóc w budowaniu bardziej złożonych warunków – to czyni nasze aplikacje lepszymi. Ważne, żebyś rozumiał, jak to działa, bo to na pewno przyda się w przyszłości!

Pytanie 19

W obiektowym programowaniu w języku JavaScript zapis: this.zawod w podanym kodzie oznacza

function Uczen(){
  this.imie = '';
  this.nazwisko = '';
  this.technik = 'informatyk';
  this.zawod = function() {
    return this.technik;
  };
}
A. metodę
B. konstruktor
C. klasę
D. właściwość
Podejście, że this.zawod oznacza właściwość jest błędne, ponieważ w programowaniu obiektowym właściwością określamy element obiektu, który przechowuje dane. W przedstawionym kodzie this.zawod jest przypisany do funkcji, która jest metodą umożliwiającą wykonywanie operacji, a nie przechowywanie danych. Klasa w JavaScript, choć wprowadza nowe podejście do definiowania obiektów, jest konceptem wyższego poziomu i nie jest bezpośrednio związana z definicją metod za pomocą funkcji. W analizowanym kodzie użyto funkcji konstrukcyjnej, a nie klasy zdefiniowanej za pomocą słowa kluczowego class. Konstruktor w kontekście programowania obiektowego odnosi się do specjalnej funkcji, która inicjalizuje nowo utworzone obiekty, definiując ich właściwości i metody. W powyższym przykładzie funkcja Uczen pełni rolę konstruktora, lecz sam zapis this.zawod nie jest konstruktorem, gdyż nie służy do tworzenia instancji obiektów, lecz do definiowania ich zachowania. Rozróżnienie między metodą, właściwością, klasą i konstruktorem jest kluczowe dla zrozumienia struktury i działania obiektów w JavaScript. Typowe błędy myślowe wynikają z nieodróżniania tych pojęć i nieznajomości kontekstu, w jakim słowo this jest używane, które w JavaScript może odnosić się do różnych obiektów w zależności od miejsca wywołania i sposobu, w jaki funkcja została zdefiniowana lub wywołana. Zrozumienie tych pojęć jest fundamentalne dla efektywnego programowania obiektowego w JavaScript, co pozwala unikać błędów i pisać bardziej przejrzysty i efektywny kod

Pytanie 20

W języku JavaScript zadeklarowano funkcję.
function absValue(f) {
    return Math.abs(f);
}

A. zwrócić wartość bezwzględną z f
B. zwrócić wartość przeciwną do f
C. wypisać wartość przeciwną do f
D. wypisać wartość bezwzględną z f
To niepoprawna odpowiedź. Funkcja absValue(f) w języku JavaScript została zapisana w taki sposób, że zwraca wartość bezwzględną przekazanego argumentu f, a nie jego wartość przeciwną ani nie wypisuje żadnego wyniku na ekran. Wewnątrz funkcji użyto polecenia return Math.abs(f);, które powoduje zwrócenie liczby zawsze nieujemnej. Metoda Math.abs() automatycznie sprawdza, czy podana liczba jest ujemna, i jeśli tak, zamienia ją na dodatnią, pozostawiając bez zmian liczby dodatnie. Opcja „wypisać wartość przeciwną do f” jest błędna, ponieważ funkcja nie używa instrukcji wypisującej (console.log()), a ponadto nie tworzy liczby przeciwnej (czyli o przeciwnym znaku). Podobnie niepoprawna jest opcja „zwrócić wartość przeciwną do f”, gdyż funkcja nie odwraca znaku liczby poprzez -f, tylko korzysta z wbudowanego mechanizmu obliczania wartości bezwzględnej. Również opcja „wypisać wartość bezwzględną z f” jest błędna, ponieważ działanie return nie powoduje wypisania wartości, lecz jej zwrócenie. Poprawna odpowiedź to „zwrócić wartość bezwzględną z f”. Właśnie to robi funkcja absValue(f) — zwraca wynik obliczeń, który może być dalej użyty w programie, np. do porównań, analiz danych lub obliczeń matematycznych. Rozumienie różnicy między „zwracaniem” a „wypisywaniem” jest bardzo istotne w programowaniu, ponieważ pozwala odróżnić operacje wewnętrzne w kodzie od tych, które mają wpływ na to, co użytkownik zobaczy na ekranie.

Pytanie 21

Którego polecenia JavaScript należy użyć, aby w oknie przeglądarki wyświetliło się okno przedstawione na obrazie?

Ilustracja do pytania
A. document.write(’Ile masz lat?’)
B. prompt(’Ile masz lat?’)
C. confirm(’Ile masz lat?’)
D. alert(’Ile masz lat?’)
Prawidłowo – żeby wyświetlić w przeglądarce okno z polem tekstowym do wpisania odpowiedzi, trzeba użyć funkcji prompt(). W JavaScript wywołanie prompt('Ile masz lat?') powoduje pokazanie natywnego okna dialogowego z komunikatem oraz jednym polem input typu tekstowego. Funkcja zwraca to, co użytkownik wpisze, jako łańcuch znaków (string), albo null, jeśli kliknie „Anuluj”. Dzięki temu od razu możesz przypisać wynik do zmiennej, np.: const wiek = prompt('Ile masz lat?'); i dalej go przetwarzać w skrypcie, np. konwertować na liczbę: const wiekNum = Number(wiek); albo parseInt(wiek, 10). Z mojego doświadczenia prompt() jest często używany w prostych przykładach dydaktycznych, do szybkiego testowania logiki programu, np. pytanie o imię, wiek, hasło dostępu w wersji „demo”. W realnych aplikacjach produkcyjnych raczej unika się prompt(), bo jest mało elastyczny, trudno go ostylować i blokuje interfejs (jest modalny i synchroniczny). Standardem branżowym jest budowanie własnych okien dialogowych w HTML/CSS/JS, np. z użyciem <dialog>, frameworków UI albo bibliotek typu modal. Jednak do nauki podstaw JavaScript, zrozumienia przepływu danych między użytkownikiem a skryptem i pokazania prostych interakcji prompt() jest bardzo wygodny. Warto też pamiętać, że prompt zawsze zwraca tekst, więc jeśli dalej chcesz wykonywać obliczenia, to zgodnie z dobrymi praktykami najpierw jawnie rzutuj go na typ liczbowy i sprawdź, czy użytkownik nie wpisał bzdury (isNaN, walidacja zakresu itp.).

Pytanie 22

W JavaScript funkcja document.getElementById(id) ma na celu

A. pobrać wartości z formularza i przypisać je do zmiennej id
B. zwrócić referencję do pierwszego elementu HTML o wskazanym id
C. zweryfikować poprawność formularza o identyfikatorze id
D. umieścić tekst o treści ’id’ na stronie internetowej
Niektóre twoje odpowiedzi trochę mylą rolę metody document.getElementById(id). Myślenie, że ta metoda pobiera dane z formularza i wkłada je do zmiennej id to zły trop. W rzeczywistości, ona służy do uzyskiwania dostępu do elementów, a jeśli chcesz odczytać wartości z pól formularzy, powinieneś użyć właściwości value. Mówienie o tym, że ta metoda sprawdza poprawność formularza, też nie jest na miejscu - do walidacji używa się innych funkcji, jak addEventListener() na zdarzenie 'submit' albo atrybutów HTML5, jak required. No i jeśli chodzi o wstawianie tekstu 'id' na stronę, to też nie tak to działa - document.getElementById(id) daje ci odnośnik do elementu, ale nie modyfikuje go w jakiś bezpośredni sposób. To błędy, które mogą wynikać z nie do końca jasnego zrozumienia, jak działają metody manipulacyjne w JavaScript.

Pytanie 23

Dla jakiej wartości zmiennej x instrukcja warunkowa w JavaScript jest spełniona?

if ((x < -5) || (x > 2))
    x++;
A. 2
B. 3
C. -4
D. -1
Analizując dostarczone odpowiedzi, kluczowe jest zrozumienie działania operatora logicznego OR oraz warunków logicznych w języku JavaScript. Instrukcja warunkowa wykonuje się, jeśli którykolwiek z warunków jest prawdziwy. Przy wartości x równej -4, żaden z warunków (x < -5) lub (x > 2) nie jest spełniony, ponieważ -4 jest większe niż -5 i mniejsze niż 2, więc instrukcja x++ się nie wykona. Dla x = -1 sytuacja jest podobna; -1 także nie spełnia obu warunków. Gdy x = 2, nadal nie spełniamy żadnego z wyrażonych warunków, ponieważ 2 nie jest większe niż 2 ani mniejsze niż -5. Typowym błędem myślowym przy rozwiązywaniu takich zadań jest błędne rozumienie zakresu działania operatora OR. Warto pamiętać, że wystarczy jedno prawdziwe wyrażenie, aby cała instrukcja została zaakceptowana. Błędne jest także myślenie, że brak bezpośredniej równości w warunku (jak x > 2) oznacza akceptację wartości granicznej. W tym przypadku konieczne jest pełne spełnienie warunku, co podkreśla znaczenie dokładności w formułowaniu logiki programistycznej. Takie zrozumienie operatorów logicznych i warunków jest niezbędne dla efektywnego tworzenia kodu, który odpowiada na wymagania logiki biznesowej w aplikacjach. Pasjonaci programowania powinni koncentrować się na testowaniu różnych scenariuszy, aby dokładnie zrozumieć, jak wartości zmiennych wpływają na przepływ działania ich kodu. Taka wiedza jest fundamentalna przy tworzeniu skalowalnych i niezawodnych rozwiązań programistycznych, które muszą operować na wielu danych wejściowych i warunkach w dynamicznie zmieniającym się środowisku.

Pytanie 24

Wskaż właściwy zapis polecenia napisanego 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 )
Analizując inne odpowiedzi, można zauważyć liczne błędy syntaktyczne oraz logiczne, które uniemożliwiają prawidłowe wykonanie kodu. W przypadku pierwszej niepoprawnej wersji, zastosowanie średnika przed liczbowym 3.14 jest błędne, ponieważ kończy to instrukcję, a nie łączy dodatkowy element, jakim jest liczba. W rezultacie, interpreter JavaScript nie będzie w stanie poprawnie zrozumieć kontekstu i wywoła błąd. W kolejnej wersji zastosowano kropkę przed liczbą, co również jest błędne, ponieważ operator kropki w JavaScript jest używany do dostępu do właściwości obiektów, a nie do łączenia danych. Takie użycie prowadzi do niepoprawnej składni. Ostatnia wersja jest również problematyczna, ponieważ brakuje operatora do konkatenacji, co powoduje, że interpreter traktuje liczby jako oddzielne elementy, co skutkuje błędem. Ważne jest, aby zrozumieć zasady składni JavaScript oraz sposób, w jaki funkcje i operatory współdziałają, aby uniknąć takich powszechnych błędów i poprawnie generować dynamiczne treści.

Pytanie 25

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w przedziale (0, 100), a wartość zmiennej b jest większa od zera. Jak można poprawnie zapisać taki warunek?

A. if (a > 0 || a < 100 11 b < 0)
B. if ((a > 0 && a < 100) 11 b < 0)
C. if ((a > 0 11 a < 100) && b > 0)
D. if (a > 0 && a < 100 && b > 0)
Odpowiedź if (a > 0 && a < 100 && b > 0) jest prawidłowa, ponieważ dokładnie odzwierciedla wymogi przedstawione w pytaniu. W tym przypadku, warunek sprawdza, czy zmienna 'a' jest większa od zera oraz mniejsza od 100, co oznacza, że mieści się w przedziale (0, 100). Dodatkowo, warunek b > 0 zapewnia, że zmienna 'b' ma wartość większą od zera. Użycie operatora logicznego && jest kluczowe, ponieważ pozwala na połączenie wszystkich trzech warunków, co oznacza, że wszystkie muszą być spełnione, aby blok kodu w instrukcji if został wykonany. W praktyce, ten typ instrukcji jest niezwykle użyteczny w różnorodnych aplikacjach, na przykład w systemach walidacji danych wejściowych, gdzie istotne jest sprawdzenie, czy wartości są w określonych zakresach przed przetwarzaniem. Dobrą praktyką jest zawsze stosowanie wyraźnych i zrozumiałych warunków logicznych w celu zwiększenia czytelności i utrzymania kodu, co jest zgodne z zasadami czystego kodowania.

Pytanie 26

Które zdarzenie JavaScript reaguje na POJEDYNCZE kliknięcie elementu?

A.
onDblClick
B.
onClick
C.
onLoad
D.
onKeyDown
Zdarzenie onclick reaguje na POJEDYNCZE kliknięcie elementu lewym przyciskiem myszy - to najczęściej używane zdarzenie interaktywne, np. <button onclick="zapisz()">Zapisz</button>. Wyzwala się po pełnym kliknięciu (wciśnięcie + zwolnienie nad tym samym elementem). Zapamiętaj: „click” = jedno kliknięcie.

Pytanie 27

Aby prawidłowo udokumentować linię kodu w języku JavaScript, należy po znakach // wpisać komentarz.

x = Math.max(a, b, c); //
A. nieprawidłowe dane.
B. w zmiennej x minimalna wartość ze zmiennych a, b, c
C. wybór losowej wartości ze zmiennych a, b i c
D. w zmiennej x maksymalna wartość ze zmiennych a, b, c
Wybór odpowiedzi, która sugeruje inne wartości niż maksymalne, wskazuje na pewne błędne zrozumienie działania funkcji Math.max() w JavaScript. Funkcja ta nie generuje losowych wartości ani nie posługuje się pojęciem minimalnej wartości w kontekście porównania podanych argumentów. Przykład, który mówi o "wyborze losowej wartości", wprowadza chaos w logice programowania, ponieważ programy oparte na konkretnych funkcjach matematycznych, takich jak Math.max(), działają w oparciu o zdefiniowane zasady i algorytmy, a nie na losowych wyborach. Z kolei mylenie maksymalnej wartości z minimalną wskazuje na brak zrozumienia podstawowych koncepcji porównywania wartości, co jest fundamentem programowania. Istotne jest, aby każdy programista rozumiał różnicę pomiędzy maksymalnymi a minimalnymi wartościami oraz umiejętność korzystania z odpowiednich funkcji do ich obliczania. Takie nieprawidłowe zrozumienie może prowadzić do błędów w kodzie, co w kontekście większych projektów może skutkować poważnymi problemami z wydajnością i stabilnością aplikacji. Umiejętność klarownego definiowania, co każda linia kodu robi, jest kluczowa w pracy programisty i przyczynia się do sukcesu projektów programistycznych.

Pytanie 28

W języku JavaScript, aby zmodyfikować wartość atrybutu znacznika HTML, po uzyskaniu obiektu przez metodę getElementById, należy zastosować

A. pola attribute i podać nazwę atrybutu
B. metody getAttribute
C. pola innerHTML
D. metody setAttribute
Wybór odpowiedzi, która sugeruje użycie pola innerHTML do zmiany atrybutów, jest nieprawidłowy, ponieważ pole to służy do manipulacji zawartością HTML wewnątrz danego elementu, a nie do zmiany jego atrybutów. Na przykład, użycie innerHTML do wstawienia nowej zawartości do elementu mogłoby spowodować nadpisanie wszystkich jego atrybutów i potencjalnie prowadzić do błędów, jeżeli nie zostaną zachowane pierwotne atrybuty. Z drugiej strony, metoda getAttribute tylko odczytuje wartość atrybutu, nie pozwala na jego modyfikację, co czyni ją niewłaściwym wyborem w kontekście zmiany wartości atrybutu. Z kolei pole attribute nie istnieje w kontekście HTML DOM jako typ właściwości, co prowadzi do nieporozumień w interpretacji. Zrozumienie tych różnic jest kluczowe dla efektywnego zarządzania elementami DOM w JavaScript. Powszechny błąd polega na myleniu funkcji związanych z manipulowaniem zawartością i atrybutami, co może prowadzić do nieefektywnego i trudnego do debugowania kodu. Kluczowym aspektem programowania w JavaScript jest znajomość metod i właściwości dostępnych w obiektach DOM oraz umiejętność ich poprawnej aplikacji w zależności od kontekstu operacji.

Pytanie 29

W języku JavaScript zapisano poniższy fragment kodu:

var x=10;
x++;
console.log(x);
Po uruchomieniu skryptu zmienna x
A. będzie miała wartość 11 i zostanie wyświetlona w konsoli przeglądarki internetowej
B. będzie miała wartość 11 i zostanie wyświetlona w oknie popup
C. będzie miała wartość 10 i zostanie pokazana w dokumencie HTML
D. będzie miała wartość 10 i zostanie wyświetlona w głównym oknie przeglądarki internetowej
Analizując niepoprawne odpowiedzi, można zauważyć, że opierają się one na nieprawidłowym rozumieniu działania kodu JavaScript. W pierwszej niewłaściwej odpowiedzi wskazuje się, że zmienna x będzie równa 11 i zostanie wypisana w oknie popup. Pomimo, że wartość zmiennej x rzeczywiście wynosi 11 przed próbą jej wyświetlenia, brak poprawnej składni w wywołaniu console.log skutkuje błędem, a kod nie zadziała zgodnie z zamierzeniem. Kolejne stwierdzenie sugeruje, że zmienna x pozostanie równa 10 i zostanie wypisana w dokumencie HTML. To jest również niepoprawne, ponieważ zmiana wartości zmiennej poprzez inkrementację miała miejsce, a jeśli kod działałby poprawnie, zmienna x by wynosiła 11. Wreszcie, ostatni błąd polega na twierdzeniu, że zmienna x będzie miała wartość 10 i zostanie wypisana w głównym oknie przeglądarki. To również jest niezgodne z rzeczywistością, ponieważ zmiana wartości zmiennej x przez operator inkrementacji prowadzi do uzyskania wartości 11. Dodatkowo, aby wyświetlić tę wartość w głównym oknie przeglądarki, należałoby użyć metody document.write lub innej odpowiedniej metody, co nie ma miejsca w analizowanym kodzie. W związku z tym, wszystkie te odpowiedzi nie są zgodne z rzeczywistością z powodu błędnej analizy kodu oraz pominięcia kluczowych elementów składniowych.

Pytanie 30

Poniżej zamieszczony fragment skryptu w JavaScript zwróci

Ilustracja do pytania
A. wodzenia
B. owodzeni
C. wo
D. ze
Patrząc na ten skrypt JavaScript, który działa na łańcuchach i wypisuje różne fragmenty tekstu, można się natknąć na pewne nieporozumienia związane z metodą substring. Z doświadczenia, wiem, że początkujący programiści czasem mylą się w odczytywaniu indeksów w tej metodzie. W skrócie, substring wyciąga dwa argumenty: początkowy i końcowy, ale działa tak, że bierze znaki od początkowego do przed końcowym. Więc gdy mamy substring(3,9) na 'Powodzenia na egzaminie', to zwraca 'odzeni'. Potem, jak wywołasz z.substring(2,4) na 'odzeni', to dostajesz 'ze'. Często błędnie myśli się, że substring bierze znaki do końca, co prowadzi do pomyłek. I jest jeszcze różnica między substring a substr, co też jest dość mylące. W kontekście tego egzaminu, ważne jest, aby rozumieć te drobne szczegóły i używać metod w odpowiednich sytuacjach. Z mojego doświadczenia, to klucz do efektywnej pracy z tekstem w skryptach webowych.

Pytanie 31

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

A. PHP
B. Ruby on Rails
C. CSS
D. JavaScript
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 32

Jakie skutki wywoła poniższy fragment kodu w języku JavaScript?

n = "Napis1"; s = n.length;
A. Przypisze zmiennej s część napisu ze zmiennej n o długości określonej przez zmienną length
B. Wyświetli liczbę znaków napisu z zmiennej n
C. Przypisze zmiennej s wartość odpowiadającą długości tekstu w zmiennej n
D. Przypisze wartość zmiennej n do zmiennej s
Odpowiedzi 1, 2 oraz 4 są niepoprawne z różnych powodów, co wskazuje na nieporozumienia w zakresie działania właściwości length w JavaScript. W przypadku pierwszej odpowiedzi, twierdzenie, że zmienna n zostanie przypisana do zmiennej s, jest błędne. Wartości zmiennych są przypisywane, a nie same zmienne. Odpowiedź ta ignoruje fakt, że w kodzie następuje użycie operatora przypisania, co skutkuje przekazaniem wartości długości napisu. W kontekście drugiej odpowiedzi, należy podkreślić, że chociaż skrypt nie wyświetla bezpośrednio długości napisu, to długość jest przypisana do zmiennej s, co jest kluczowe dla dalszego użycia tej wartości. Ostatnia odpowiedź, mówiąca o przypisaniu fragmentu napisu o określonej długości, jest również myląca, ponieważ length dotyczy całkowitej liczby znaków w napisie, a nie jego fragmentu. Programiści często mylą funkcjonalności związane z długością łańcuchów znakowych z metodami, które pozwalają na wyodrębnienie części tekstu, takimi jak substring lub slice. Zrozumienie różnicy między tymi operacjami jest istotne dla efektywnego programowania i pracy z danymi tekstowymi.

Pytanie 33

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. liczbowy, całkowity
B. NaN
C. zmiennoprzecinkowy
D. napisowy
Rzeczywiście, rozumienie tego, jak działa parseInt(), to klucz do ogarnięcia problemów związanych z danymi liczbowymi w JavaScript. Często można spotkać błąd polegający na myśleniu, że parseInt() zwraca liczby zmiennoprzecinkowe, co jest totalnie nieprawidłowe, bo zawsze dostajesz liczbę całkowitą, obcinając część dziesiętną. Inny typowy błąd to oczekiwanie, że dostaniemy NaN, kiedy dane wejściowe to liczby. NaN pojawia się tylko wtedy, gdy string nie zaczyna się od cyfry, a parseInt() nie może nic wyciągnąć. Ważne jest też to, że ta funkcja daje ci liczbę całkowitą, a nie tekst. W praktyce, jeśli nie rozumiesz dobrze konwersji typów, możesz narobić błędów w aplikacjach, co jest istotne, zwłaszcza gdy dokładność danych ma duże znaczenie. Programiści powinni mieć to na uwadze, żeby dobrze zarządzać danymi i unikać zaskakujących rezultatów, co jest zgodne z tym, co mówią najlepsze praktyki w pisaniu kodu. Warto także pamiętać o dodaniu podstawy liczbowej jako drugiego argumentu dla parseInt(), żeby uniknąć pomyłek przy interpretacji danych liczbowych w różnych systemach liczbowych, jak na przykład ósemkowy czy szesnastkowy. To naprawdę wpływa na poprawność działania aplikacji w praktyce.

Pytanie 34

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. dodać znak $ przed nazwami zmiennych
B. zmienić znaki cudzysłowu na apostrof w liniach 3 i 6, np. 'jest mniejsze'
C. wprowadzić nawiasy klamrowe w sekcji if i else
D. umieścić zmienne a i b w cudzysłowie w liniach 2 i 5
Wstawienie znaku $ przed nazwami zmiennych w JavaScript nie jest wymagane, ponieważ ten język nie wymaga żadnych specjalnych znaków dla identyfikatorów zmiennych. Znak $ jest używany w niektórych przypadkach, np. w bibliotekach jak jQuery, ale nie wpływa na sposób działania podstawowych zmiennych. Wprowadzenie cudzysłowów wokół zmiennych a i b w liniach 2 i 5 również jest nieprawidłowe, ponieważ spowoduje to, że program zamiast wartości tych zmiennych będzie próbował odwoływać się do stringów 'a' i 'b', co z kolei prowadzi do błędów. W JavaScript cudzysłowy są używane do definiowania stringów, a nie do oznaczania zmiennych. Zamiana cudzysłowów na apostrofy w liniach 3 i 6 nie rozwiązuje problemu, ponieważ zarówno cudzysłowy, jak i apostrofy są poprawnymi znacznikami stringów w JavaScript. W kontekście dobrych praktyk programistycznych, zawsze warto stosować nawiasy klamrowe dla czytelności i bezpieczeństwa kodu, gdyż ułatwia to zrozumienie jego struktury oraz zmniejsza ryzyko błędów związanych z nieprawidłowym zakresem instrukcji.

Pytanie 35

Jakiego typu zmienną tworzy deklaracja var x = "true"; w języku JavaScript?

A. liczbowego
B. logicznego (boolean)
C. string (ciąg znaków)
D. nieokreślonego (undefined)
Pozostałe typy nie pasują. Gdyby napisano var x = true; (bez cudzysłowów), byłby to typ LOGICZNY - ale cudzysłowy zmieniają to w tekst. Typ liczbowy dotyczy liczb, a undefined oznacza zmienną bez przypisanej wartości. "true" w cudzysłowach to string.

Pytanie 36

Który zapis to poprawna definicja funkcji w JavaScript?

A.
typ_funkcji nazwa_funkcji(argumenty) { instrukcje; }
B.
new nazwa_funkcji(argumenty) { instrukcje; }
C.
nazwa_funkcji(argumenty) { instrukcje; }
D.
function nazwa_funkcji(argumenty) { instrukcje; }
Funkcję w JavaScripcie definiuje się słowem kluczowym function, np. function nazwa_funkcji(argumenty) { instrukcje; }. Dlatego poprawna jest definicja zaczynająca się od function.

Pytanie 37

W języku JavaScript zdefiniowano obiekt. Aby uzyskać wartość atrybutu, można użyć następującego zapisu:

obiekt = { q: 1, w: 2, e: 3, r:4 };
A. obiekt.w
B. obiekt:w
C. obiekt::w
D. obiekt->w
Odpowiedź 'obiekt.w' jest prawidłowa, ponieważ w JavaScript używamy notacji kropkowej do uzyskiwania dostępu do właściwości obiektów. W tym przypadku mamy obiekt zadeklarowany jako 'obiekt = { q: 1, w: 2, e: 3, r:4 };'. Aby uzyskać wartość przypisaną do właściwości 'w', wystarczy użyć notacji kropkowej i napisać 'obiekt.w', co zwróci wartość '2'. Tego typu dostęp do danych jest standardem w JavaScript i jest szeroko stosowany w projektach, co pozwala na efektywne i czytelne manipulowanie danymi. Przykładowo, możemy użyć tej techniki w funkcjach, które przetwarzają obiekty lub w kodzie, który reaguje na zdarzenia, gdzie często zachodzi potrzeba uzyskania konkretnych wartości z obiektów. Dobrą praktyką jest również używanie notacji kropkowej, gdy właściwości obiektu mają znane i stabilne nazwy, co zwiększa czytelność kodu.

Pytanie 38

Kod umieszczony w ramce spowoduje wyświetlenie liczb

Ilustracja do pytania
A. 1 2 3 4 5 6 7 8 9 10
B. 2 4 6 8 10
C. 2 4 6 8
D. 1 3 5 7 9
Analizując błędne odpowiedzi można zauważyć że nie uwzględniają one poprawnego działania instrukcji continue w kodzie PHP. Ta instrukcja pomija pozostałe kroki bieżącej iteracji pętli jeśli warunek jest spełniony. Pierwsza odpowiedź 2 4 6 8 nie uwzględnia liczby 10 która także spełnia warunek parzystości i powinna być wypisana co jest błędne w kontekście działania pętli do wartości 10 włącznie. Druga propozycja 1 3 5 7 9 jest wynikiem niepoprawnego zrozumienia działania operatora modułu i instrukcji continue które eliminują liczby nieparzyste z wyjścia. Wyświetlenie tylko nieparzystych liczb oznaczałoby brak zastosowania instrukcji continue lub jej odwrotność co jest sprzeczne z kodem. Ostatnia propozycja 1 2 3 4 5 6 7 8 9 10 zakłada że wszystkie liczby od 1 do 10 są wypisywane co ignoruje kluczowy wpływ instrukcji continue na przebieg pętli. Taki wynik mógłby wskazywać na brak warunku eliminującego liczby nieparzyste co jest błędne w kontekście kodu. Typowym błędem jest tu niepoprawne rozumienie działania instrukcji sterujących jak continue które pełnią kluczową rolę w przepływie sterowania w pętlach programistycznych i powinny być zawsze dokładnie analizowane aby uniknąć błędnych wniosków i nieoczekiwanych wyników w programach. Operator modulo to również istotny element w zrozumieniu działania kodu służący do łatwego sprawdzania podzielności i warunków logicznych co jest powszechnie stosowane w wielu językach programowania do optymalizacji i filtrowania danych. Kod ilustruje również jak za pomocą prostych warunków można efektywnie zarządzać dużymi zbiorami danych w aplikacjach co jest kluczowe w optymalizacji algorytmów i poprawie wydajności systemów informatycznych.

Pytanie 39

Deklarując var x="true"; w języku JavaScript, jakiego typu zmienną się tworzy?

A. Liczbowego
B. Nieokreślonego (undefined)
C. Logicznego
D. String (ciąg znaków)
Odpowiedzi wskazujące na inne typy danych, takie jak typ logiczny czy liczbowy, zawierają istotne nieporozumienia dotyczące sposobu, w jaki JavaScript zarządza danymi. Typ logiczny w tym kontekście oznaczałby, że zmienna mogłaby przyjmować tylko wartości 'true' lub 'false', co jest mylnym założeniem, ponieważ 'true' jest tutaj częścią tekstu, a nie wartością logiczną. Z kolei typ liczbowy byłby właściwy dla zmiennych takich jak 1, 2 czy 3, które reprezentują liczby całkowite lub zmiennoprzecinkowe. W przypadku zadeklarowanej zmiennej 'var x="true";', wartość, która jest przypisywana, jest w rzeczywistości ciągiem tekstowym, mimo że zawiera słowo kluczowe 'true'. Typ danych 'undefined' z kolei oznacza, że zmienna została zadeklarowana, ale nie przypisano jej żadnej wartości, co również nie odpowiada sytuacji przedstawionej w pytaniu. Zrozumienie typów danych w JavaScript jest kluczowe dla unikania błędów typowych, zwłaszcza w kontekście zmiennych, które mogą być używane w różnych operacjach. W praktyce, to zrozumienie typów pozwala programistom lepiej zarządzać danymi i pisać bardziej niezawodny kod. Warto również pamiętać, że JavaScript automatycznie konwertuje typy w wielu sytuacjach, co może prowadzić do niezamierzonych rezultatów, dlatego proszę zwracać szczególną uwagę na przypisania i operacje wykonywane na zmiennych.

Pytanie 40

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

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