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: 10 czerwca 2026 13:16
  • Data zakończenia: 10 czerwca 2026 13:23

Egzamin zdany!

Wynik: 24/40 punktów (60,0%)

Wymagane minimum: 20 punktów (50%)

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

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

A. numeryczny
B. logiczy
C. enumeracyjny
D. łańcuch znaków
Zmienna x w JavaScript, która została zadeklarowana jako 'var x=true;', to typ logiczny, czyli boolean. W tym języku mamy dwie możliwe wartości: true (prawda) i false (fałsz). Ten typ jest naprawdę ważny, zwłaszcza gdy mówimy o warunkach w programach, bo to właśnie one są bazą dla programowania strukturalnego i obiektowego. Kiedy piszesz instrukcje if albo pętle, typ logiczny odgrywa kluczową rolę w tym, co się dzieje w programie. Fajnie jest korzystać z zmiennych logicznych, by kontrolować, co się dzieje w kodzie, a także sprawiać, że warunki są czytelniejsze. Ciekawe jest też to, że w JavaScript inne typy, jak liczby czy ciągi znaków, mogą być używane w kontekście wartości prawdziwych i fałszywych. To czyni typ logiczny bardzo elastycznym i wszechstronnym. Im lepiej rozumiesz ten typ, tym lepiej potrafisz tworzyć dynamiczne aplikacje, które dobrze reagują na różne sytuacje.

Pytanie 2

W instrukcji warunkowej w języku JavaScript należy zweryfikować sytuację, w której wartość zmiennej a leży w przedziale (0,100), a wartość zmiennej b jest większa od zera. Odpowiedni zapis warunku jest następujący:

A. if (a > 0 && a < 100 || b < 0 )
B. if (a > 0 && a < 100 && b > 0 )
C. if (a > 0 || a < 100 && b > 0 )
D. if (a > 0 || a < 100 || b < 0 )
Odpowiedź 'if (a > 0 && a < 100 && b > 0)' jest dokładnie to, czego szukamy. Zmiana 'a' musi być w przedziale powyżej 0, ale poniżej 100, a do tego 'b' musi być większe od zera. To tak jakby ustalać zasady dla jakiegoś wyzwania – żeby coś się udało, musi być spełnionych kilka warunków na raz. Przykładowo, jeżeli myślimy o zakupach online, to możemy zrobić zakupy tylko wtedy, gdy kwota jest w porządku (czyli w tym przedziale) i nasze konto ma jakieś pieniądze. Takie jasne zasady są super ważne, bo pomagają w pisaniu czytelnego kodu, który potem łatwiej zrozumieć i utrzymać.

Pytanie 3

W języku JavaScript, aby zweryfikować, czy liczba leży w zakresie 100,200>, należy użyć:

A. if(liczba<100 || liczba>=200)
B. if(liczba>100 && liczba <=200)
C. if (liczba>100 || liczba<=200)
D. if(liczba<100 && liczba<=200)
Aby sprawdzić, czy liczba znajduje się w przedziale od 100 do 200 włącznie w języku JavaScript, należy użyć operatora logicznego AND (&&). Wyrażenie if(liczba > 100 && liczba <= 200) oznacza, że liczba musi być większa niż 100 oraz jednocześnie mniejsza lub równa 200. Przykład: jeśli mamy liczby 150 i 250, to 150 spełnia warunki tego warunku (jest większa od 100 i mniejsza lub równa 200), podczas gdy 250 nie spełnia (jest większa od 200). Kluczowe jest zrozumienie operatorów porównania oraz logicznych w JavaScript. Zgodnie z ECMAScript, językiem, na którym oparty jest JavaScript, użycie operatora AND w tym kontekście jest standardowym podejściem do określenia, czy wartość znajduje się w danym przedziale. Poprawne użycie tych operatorów jest istotne dla logiki programów oraz dostosowywania warunków do różnych sytuacji, co jest niezbędne w codziennej pracy programisty.

Pytanie 4

Który z poniższych sposobów na komentarz jednoliniowy jest akceptowany w języku JavaScript?

A. #
B. !
C. //
D. <!
W JavaScript, jeśli chcesz dodać komentarz jednoliniowy, musisz użyć podwójnych ukośników, czyli '//' na początku linii. Te komentarze są naprawdę przydatne, bo pozwalają ci opisać, co robi dany kawałek kodu, albo czasami wyłączyć fragmenty podczas testowania. Co fajne, to że wszystko, co napiszesz za '//' zostanie zignorowane przez interpreter, więc nie będzie miało wpływu na działanie skryptu. Przykład: masz linijkę 'let x = 5; // Ustawia wartość x na 5', i wszystko po '//' nie będzie brane pod uwagę przez JavaScript. Komentarze są zgodne z ECMAScript, który jest takim standardem dla tego języka. Szczerze mówiąc, dobrze jest używać komentarzy do dokumentacji, bo to ułatwia czytanie kodu i pracę z innymi programistami. Pamiętaj, żeby robić je zwięzłe, ale muszą też dobrze tłumaczyć, co miał na myśli autor kodu.

Pytanie 5

W JavaScript poprawnie zdefiniowana zmienna to

A. imie2
B. imię2
C. #imie
D. imię%
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 6

Wskaż definicję metody, którą należy wstawić w miejscu kropek, aby na stronie WWW wyświetlił się tekst: Jan Kowalski

<p id="wynik"></p>
<script type="text/javascript">
    var osoba = { nazwisko: "Kowalski", imie: "Jan" };
    …
    document.getElementById("wynik").innerHTML = osoba.dane();
</script>

osoba.dane = function() {
    return this.imie+" "+this.nazwisko;
};                 A.

dane() = function() {
    return this.imie+" "+this.nazwisko;
};                 B.

osoba.dane = function() {
    return imie+" "+nazwisko;
};                 C.

dane() = function {
    this.imie+" "+this.nazwisko;
};                 D.
A. A.
B. C.
C. D.
D. B.
Fajnie, że wybrałeś dobrą odpowiedź! Metoda 'dane' jest powiązana z obiektem 'osoba', co pozwala ci używać słowa kluczowego 'this', żeby odwołać się do 'imię' i 'nazwisko'. To naprawdę ważna zasada w programowaniu obiektowym. 'This' to taki klucz, dzięki któremu możesz wskazać, z którego obiektu korzystasz w danej chwili. W tym przypadku odnosisz się do obiektu 'osoba'. Wyobraź sobie, że tworzysz aplikację i chcesz pokazać informacje o użytkowników, na przykład na stronie profilu. Dzięki metodzie 'dane', która jest częścią obiektu 'osoba', możesz łatwo wyświetlić imię i nazwisko. O to chodzi w programowaniu!

Pytanie 7

Które z poniższych poleceń JavaScript zmieni kolor tekstu na niebieski w paragrafie oznaczonym w HTML?

<p id="jeden">Kwalifikacja EE.01</p>
A. document.getElementById("jeden").style.background-color = "blue";
B. document.getElementById("jeden").color = "blue";
C. document.getElementById("jeden").background-color = "blue";
D. document.getElementById("jeden").style.color = "blue";
W języku JavaScript do zmiany stylu elementu HTML używamy obiektu style powiązanego z danym elementem. W przypadku zmiany koloru tekstu w akapicie używamy właściwości color. Poprawna składnia to document.getElementById("jeden").style.color = "blue";. Funkcja getElementById pobiera element o podanym identyfikatorze w tym przypadku jeden. Następnie poprzez przypisanie wartości blue do style.color zmieniamy kolor tekstu wewnątrz tego elementu na niebieski. Jest to zgodne z praktykami programowania w JavaScript ponieważ separacja stylów od treści jest istotna dla czytelności i utrzymania kodu a użycie style pozwala na bezpośrednią modyfikację właściwości CSS. Dobre praktyki sugerują aby stylowanie umieszczać w plikach CSS jednak JavaScript daje możliwość dynamicznej modyfikacji stylów co jest użyteczne w interaktywnych aplikacjach webowych. Przykładowo podczas tworzenia dynamicznych interfejsów użytkownika możemy reagować na różne zdarzenia zmieniając style elementów w odpowiedzi na działania użytkownika co zwiększa responsywność i atrakcyjność aplikacji.

Pytanie 8

W ramce przedstawiono kod JavaScript z błędem logicznym. Program powinien wypisywać informację, czy liczby są sobie równe, czy nie, lecz nie wykonuje tego. Wskaż odpowiedź, która dotyczy 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. Zawartość sekcji if oraz else powinna być zamieniona miejscami
B. Brak średnika przed klauzulą else
C. Zmienne zostały zadeklarowane w niewłaściwy sposób
D. W klauzuli if użyto przypisania zamiast porównania
W analizowanym kodzie JavaScript występuje błąd związany z użyciem operatora przypisania zamiast operatora porównania w klauzuli if. W języku JavaScript do porównania dwóch wartości używa się operatora '===' lub '=='. Operator '=' to operator przypisania, który przypisuje wartość z prawej strony do zmiennej po lewej stronie. W kontekście warunków if, należy użyć operatora porównania, aby ocenić, czy dwie zmienne są równe. W poprawnej wersji kodu, linia if x = y powinna być zmieniona na if (x === y). Dodatkowo, warto pamiętać o umieszczeniu wartości porównawanych w nawiasach, co zwiększa czytelność i poprawność kodu. Przykład prawidłowego kodu to: 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ą'; }. Taki zapis zapewnia, że program poprawnie zidentyfikuje różnicę między zmiennymi x i y i odpowiednio wyświetli komunikat.

Pytanie 9

Aby poprawnie udokumentować poniższą linię kodu, trzeba po znakach // dodać komentarz: ```document.getElementById("napis").innerHTML = Date(); //```

A. zmiana stylizacji atrybutu innerHTML
B. wyświetlenie tekstu "Date()" w elemencie o id = napis
C. wyświetlenie daty i czasu w elemencie o id = napis
D. błędne informacje
Odpowiedź 'wyświetlenie daty i czasu w znaczniku o id = napis' jest poprawna, ponieważ linia kodu używa metody 'getElementById', która pozwala na dostęp do elementu HTML za pomocą jego identyfikatora. W tym przypadku, 'document.getElementById("napis")' odnosi się do elementu, którego identyfikator to 'napis'. Następnie, przypisując do atrybutu 'innerHTML' wynik funkcji 'Date()', kod wstawia bieżącą datę i czas jako zawartość tego elementu. Funkcja 'Date()' zwraca aktualną datę i czas w formacie czytelnym dla użytkownika, co czyni kod użytecznym w aplikacjach internetowych, gdzie użytkownik może chcieć zobaczyć bieżący czas. W praktyce, takie podejście jest często stosowane w aplikacjach do wyświetlania informacji o czasie, na przykład w kalendarzach czy aplikacjach do planowania. Warto również dodać, że użycie 'innerHTML' do aktualizacji zawartości elementu jest zgodne z najlepszymi praktykami w JavaScript, pod warunkiem, że nie wprowadza się niebezpiecznych danych z niezaufanych źródeł, co mogłoby prowadzić do ataków typu XSS.

Pytanie 10

Język JavaScript wspiera

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

Pytanie 11

W przedstawionym kodzie JavaScript linie zostały ponumerowane dla wygody. Kod ten zawiera błąd, ponieważ po jego uruchomieniu nie wyświetla się żaden komunikat. Aby usunąć ten błąd, należy

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ć nawiasy klamrowe do sekcji if i else
B. w liniach 3 i 6 zastąpić znaki cudzysłowu apostrofami, np. 'jest mniejsze'
C. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowie
D. umieścić znaki $ przed nazwami zmiennych
Odpowiedź zakłada wstawienie nawiasów klamrowych do sekcji if oraz else co jest kluczowym elementem praktyki programowania w JavaScript. Nawiasy klamrowe zapewniają prawidłowe wykonanie bloku kodu w przypadku warunków jeśli i else co jest standardową praktyką w większości języków programowania. Nawet jeśli blok kodu zawiera tylko jedną linię dodanie nawiasów klamrowych zwiększa czytelność kodu i ułatwia jego przyszłą edycję. Użycie nawiasów klamrowych jest również kluczowe gdyż zapobiega błędom logicznym i nieoczekiwanym zachowaniom programu. W implementacji systemów produkcyjnych oraz podczas pracy z zespołem przestrzeganie takich standardów jest niezmiernie ważne ponieważ zapewnia spójność kodu i ułatwia jego zrozumienie przez innych programistów. Przykładowo dodanie nawiasów klamrowych do instrukcji if w kodzie który jest często aktualizowany minimalizuje ryzyko wprowadzenia błędów. Programiści zawsze powinni dążyć do pisania kodu który jest łatwy do zrozumienia utrzymania i modyfikacji co jest jednym z fundamentów inżynierii oprogramowania.

Pytanie 12

W języku JavaScript funkcja getElementById() odnosi się do

A. elementu HTML o określonym id
B. zmiennej liczbowej
C. elementu HTML o wskazanej nazwie klasy
D. klasy zdefiniowanej w CSS
Metoda getElementById() jest jedną z najczęściej używanych funkcji w JavaScript, która pozwala na bezpośrednie odwołanie się do elementu DOM (Document Object Model) za pomocą atrybutu id. Gdy wywołujemy tę metodę, przekazujemy jej jako argument ciąg znaków odpowiadający wartości atrybutu id danego elementu HTML. Przykładowo, jeśli mamy znacznik `<div id='myDiv'></div>`, możemy uzyskać do niego dostęp za pomocą `document.getElementById('myDiv')`. Jest to bardzo efektywny sposób na manipulowanie elementami strony, umożliwiający m.in. zmianę ich zawartości, stylu czy atrybutów. Dzięki tej metodzie programiści mogą szybko i łatwo modyfikować interfejs użytkownika oraz reagować na zdarzenia, co jest zgodne z zasadami responsywnego projektowania i tworzenia dynamicznych aplikacji webowych. Warto również pamiętać, że użycie unikalnych identyfikatorów w HTML jest zgodne z dobrymi praktykami, ponieważ pozwala na łatwiejszą nawigację po strukturze dokumentu i unika konfliktów z innymi elementami.

Pytanie 13

W języku JavaScript przedstawiona poniżej definicja jest definicją
var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"];

A. klasy.
B. tablicy.
C. obiektu.
D. kolekcji.
W języku JavaScript definicja var imiona=["Anna", "Jakub", "Iwona", "Krzysztof"]; przedstawia tablicę, która jest jednym z fundamentalnych typów danych w tym języku. Tablice są używane do przechowywania zbiorów danych w sposób uporządkowany. W tym przypadku tablica imiona przechowuje cztery stringi, każdy reprezentujący imię. Wartością dodaną tablicy jest możliwość dostępu do poszczególnych elementów za pomocą indeksów, które zaczynają się od zera. Na przykład, imiona[0] zwróci \"Anna\", a imiona[1] zwróci \"Jakub\". W praktyce tablice są niezwykle przydatne w programowaniu, ponieważ pozwalają na łatwe zarządzanie i manipulację danymi. Dobrą praktyką jest używanie tablic do przechowywania związków danych, co umożliwia ich efektywne przetwarzanie i iterację za pomocą pętli, co zwiększa czytelność i organizację kodu. Warto również zaznaczyć, że tablice w JavaScript są obiektami, co daje dodatkowe możliwości manipulacji, takie jak metody tablicowe (np. push, pop, map, filter) do operacji na zbiorach danych. Poznanie i zrozumienie tablic jest kluczowe dla każdego programisty, ponieważ są one podstawą wielu algorytmów i struktur danych."

Pytanie 14

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

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

Pytanie 15

Wskaż metodę biblioteki Math języka JavaScript, która dla parametru x = 2.8 zwróci wartość 2.

A. exp(x)
B. sqrt(x)
C. floor(x)
D. ceil(x)
Poprawna jest metoda Math.floor(x), ponieważ w JavaScript odpowiada ona za zaokrąglenie liczby w dół do najbliższej liczby całkowitej. Dla x = 2.8 wynik Math.floor(2.8) to 2, bo funkcja „odcina” część ułamkową i schodzi do najbliższej liczby całkowitej mniejszej lub równej podanej wartości. To zachowanie jest zdefiniowane w specyfikacji ECMAScript i jest spójne we wszystkich nowoczesnych przeglądarkach oraz środowiskach typu Node.js. W praktyce Math.floor bardzo często wykorzystuje się przy pracy z indeksami tablic, generowaniu losowych liczb całkowitych czy przy obliczeniach, gdzie fragment ułamkowy nie ma znaczenia, np. liczba stron, liczba pełnych paczek produktu, paginacja rekordów. Typowy wzorzec to na przykład Math.floor(Math.random() * 10), który daje liczby całkowite z zakresu 0–9. Warto też świadomie odróżniać Math.floor od innych metod zaokrąglania: Math.ceil(2.8) zwróci 3, bo zaokrągla „w górę”, a Math.round(2.8) również zwróci 3, bo zaokrągla do najbliższej liczby całkowitej. Z mojego doświadczenia w JS często używa się właśnie floor tam, gdzie ważna jest przewidywalność w dół, np. przy obliczaniu indeksów czy dzieleniu na równe segmenty, żeby nie wyjść poza zakres. Warto też pamiętać, że Math.floor działa poprawnie również dla liczb ujemnych, ale tam „w dół” oznacza w kierunku −∞, więc Math.floor(−2.8) da −3, co czasem potrafi zaskoczyć, jeśli ktoś myśli tylko o „obcięciu” części po przecinku.

Pytanie 16

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

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

Pytanie 17

Jakim słowem kluczowym można zainicjować zmienną w JavaScript?

A. new
B. variable
C. instanceof
D. var
W języku JavaScript, deklaracja zmiennej przy użyciu słowa kluczowego 'var' jest jednym z podstawowych i fundamentalnych aspektów programowania. Słowo kluczowe 'var' umożliwia tworzenie zmiennych, które mogą przechowywać wartości zarówno typu prymitywnego, jak i obiektowego. Wartością dodaną użycia 'var' jest to, że zmienne zadeklarowane w ten sposób mają zasięg funkcji, co oznacza, że są dostępne w obrębie funkcji, w której zostały zadeklarowane, jak również w zasięgu globalnym, jeśli zostały zdefiniowane poza funkcją. Przykład użycia 'var': var liczba = 10; zmienna 'liczba' jest teraz dostępna w obrębie całej funkcji. Warto również zauważyć, że w nowszych standardach JavaScript, takich jak ECMAScript 6, wprowadzono dodatkowe słowa kluczowe takie jak 'let' i 'const', które oferują bardziej precyzyjny zasięg blokowy i zwiększają bezpieczeństwo kodu. 'Var' pozostaje jednak ważnym elementem do zrozumienia dla każdego programisty JavaScript, ponieważ jest fundamentem, na którym opiera się wiele starszych i nadal używanych skryptów.

Pytanie 18

Które zdarzenie języka JavaScript jest wyzwalane w momencie, gdy kursor myszy znajduje się na elemencie do którego jest przypisane?

A. onmouseout
B. onmouseup
C. onmouseover
D. onmousedown
Prawidłowa odpowiedź to onmouseover, bo właśnie to zdarzenie w JavaScript uruchamia się w momencie, kiedy kursor myszy *wchodzi* na dany element i znajduje się nad nim. Przeglądarka monitoruje położenie kursora i gdy tylko „najedziesz” na element z przypisanym zdarzeniem onmouseover, wywoływany jest podpięty handler, na przykład funkcja w JavaScript. W praktyce często używa się tego do tworzenia efektów typu podświetlanie przycisków, rozwijane menu, podpowiedzi (tooltips) albo lekkie animacje po najechaniu. Przykładowo: `<button onmouseover="this.style.backgroundColor='orange'">Najedź na mnie</button>` – w chwili najechania myszką kolor tła przycisku się zmienia. Moim zdaniem to jedno z bardziej podstawowych zdarzeń, które warto ogarnąć na początku nauki frontendu, bo pozwala szybko zrobić stronę bardziej „żywą”. W nowoczesnym kodzie raczej unika się pisania atrybutów typu onmouseover bezpośrednio w HTML i zamiast tego stosuje się `addEventListener("mouseover", handler)` w JavaScript. Jest to zgodne z dobrymi praktykami i oddziela logikę od struktury dokumentu. Warto też wiedzieć, że onmouseover różni się od onmouseenter: onmouseover propaguje się (bąbelkuje) w górę drzewa DOM, co ma znaczenie przy bardziej złożonych interfejsach. Standardowe API DOM dokładnie opisuje te różnice i przy projektowaniu interakcji dobrze jest świadomie wybierać odpowiedni typ zdarzenia. W typowych projektach webowych onmouseover jest używany głównie do prostych reakcji na najechanie, ale trzeba pamiętać, by nie przesadzać z efektami, żeby nie przeciążyć użytkownika i nie zepsuć użyteczności strony.

Pytanie 19

W ramce przedstawiono kod JavaScript z błędem logicznym. Program powinien wypisywać informację, czy liczby są sobie równe czy nie, lecz nie wykonuje tego. Wskaż odpowiedź, która dotyczy 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. Przed klauzulą else nie powinno być średnika.
B. W klauzuli if występuje przypisanie zamiast porównania.
C. Instrukcje wewnątrz sekcji if oraz else powinny być zamienione miejscami.
D. Nieprawidłowo zadeklarowano zmienne.
Gratulacje! Poprawnie zauważyłeś, że w klauzuli if występuje przypisanie zamiast porównania. W JavaScript, operatorem przypisania jest pojedynczy znak równości (=), natomiast operatorem porównania jest podwójny (==) lub potrójny znak równości (===). W przypadku prezentowanego kodu, zamiast porównać wartości zmiennych x i y, wartość zmiennej y jest przypisywana do zmiennej x, co prowadzi do błędu logicznego. Jest to typowy błąd, który często występuje, szczególnie u początkujących programistów. W praktyce, aby nie pomylić operatorów, warto zawsze umieszczać wartość stałą po lewej stronie operatora porównania - wtedy próba przypisania wartości stałej zwróci błąd kompilacji. Dodatkowo, niektóre narzędzia do analizy statycznej kodu, takie jak ESLint, mogą pomóc w wykrywaniu tego typu błędów.

Pytanie 20

Instrukcja przypisania elementu do tablicy w języku JavaScript dotyczy tablicy:

Tablica['technik'] = 'informatyk';
A. numerycznej.
B. asocjacyjnej.
C. statycznej.
D. wielowymiarowej.
Poprawna odpowiedź to 'asocjacyjna'. W języku JavaScript, tablice asocjacyjne są strukturami danych, które używają kluczy zamiast indeksów numerycznych. Kluczem może być dowolny ciąg znaków, co oznacza, że elementy tablicy są identyfikowane za pomocą unikalnych kluczy. W praktyce, gdy używamy tablicy asocjacyjnej, przypisujemy wartość do określonego klucza, jak w przedstawionym przykładzie, gdzie wartość 'informatyk' przypisana jest do klucza 'technik'. Jest to często stosowane w praktyce, ponieważ pozwala na bardziej intuicyjne i zrozumiałe indeksowanie danych. Ważne jest jednak, aby pamiętać, że mimo iż tablice asocjacyjne są bardzo użyteczne, nie są one oficjalnie uznawane przez specyfikację języka JavaScript, co oznacza, że różne środowiska mogą je obsługiwać w różny sposób.

Pytanie 21

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

A. trim()
B. concat()
C. slice()
D. replace()
Metoda slice() w języku JavaScript jest kluczowym narzędziem do wydobywania fragmentów ciągów tekstowych. Umożliwia wyodrębnienie podciągu na podstawie określonych indeksów początkowego i końcowego. Przykładowo, jeśli mamy napis 'JavaScript' i chcemy uzyskać 'Script', możemy użyć slice(4, 10). Indeks początkowy jest wliczany, a końcowy jest wykluczany, co zapewnia elastyczność w manipulacji ciągami. Metoda slice() nie modyfikuje oryginalnego ciągu, co jest zgodne z zasadą immutability w funkcjonalnym programowaniu, zwiększając bezpieczeństwo danych. Metoda ta obsługuje również ujemne indeksy, co pozwala na łatwe wyodrębnianie fragmentów z końca napisu. Warto pamiętać, że slice() jest preferowana, gdyż jest bardziej czytelna i intuicyjna w porównaniu z innymi metodami do manipulacji tekstem, jak substr() czy substring().

Pytanie 22

W języku JavaScript, funkcja Math.pow() wykorzystuje się do obliczenia

A. potęgi liczby
B. wartości bezwzględnej liczby
C. wartości przybliżonej liczby
D. pierwiastka kwadratowego liczby
Funkcja Math.pow() w JavaScript służy do obliczania potęgi liczby, co oznacza, że można jej użyć do podnoszenia liczby do wybranej potęgi. Poprawna składnia tej funkcji to Math.pow(base, exponent), gdzie 'base' to liczba, którą chcemy podnieść do potęgi, a 'exponent' to wykładnik. Na przykład, aby obliczyć 2 do potęgi 3, używamy Math.pow(2, 3), co zwraca 8. Ta funkcja jest niezwykle przydatna w różnych kontekstach programistycznych, takich jak obliczenia matematyczne, grafika komputerowa, czy modelowanie rzeczywistych zjawisk. W praktyce, korzystając z Math.pow(), można zrealizować wiele bardziej zaawansowanych obliczeń, takich jak obliczanie wartości funkcji wygładzających, symulacji fizycznych czy operacji na danych statystycznych. Kluczowe jest, aby pamiętać, że w JavaScript dostępne są również operator potęgowania (**), wprowadzony w ECMAScript 2016, co czyni kod bardziej czytelnym, na przykład 2 ** 3 również zwraca 8. Warto być świadomym tych narzędzi, aby optymalizować i upraszczać kod w swoich projektach.

Pytanie 23

Które spośród poniższych zdań dotyczących definicji funkcji umieszczonej w ramce jest prawidłowe?

function czytajImie(){
var imie=null;
do{
imie=prompt("podaj imie: ");
if(imie.length<3) alert("wprowadzony tekst jest niepoprawny");
}while(imie.length<3);
}
A. Wczytywanie tekstu zakończy się, gdy tekst będzie się składał przynajmniej z 3 znaków
B. Funkcja zawiera pętlę, która powtarza się 3 razy
C. Pętla wykona się tylko jeden raz
D. Tekst będzie odczytywany do chwili, gdy podana zostanie liczba większa niż 3
Prawidłowa odpowiedź odnosi się do warunku zakończenia pętli do while w języku JavaScript. Pętla ta wykonuje się co najmniej raz, ponieważ najpierw wykonuje blok kodu, a dopiero potem sprawdza warunek. W tym przypadku, użytkownik jest proszony o wprowadzenie tekstu reprezentującego imię. Instrukcja if sprawdza, czy wprowadzone imię ma mniej niż 3 znaki. Jeśli tak, pojawia się komunikat, że tekst jest nieprawidłowy, a pętla ponownie prosi o podanie imienia. Proces ten powtarza się, dopóki użytkownik nie wprowadzi imienia o długości co najmniej 3 znaków. Jest to typowa technika walidacji danych wejściowych, zapewniająca, że użytkownik wprowadzi wartości spełniające określone kryteria. Taki sposób walidacji jest stosowany w aplikacjach wymagających dokładności danych wejściowych, zwłaszcza w formularzach internetowych, gdzie poprawność danych jest kluczowa. Praktyka ta pomaga w zapewnieniu, że dane są kompletne i zgodne z wymaganiami biznesowymi, co jest istotne w programowaniu front-end.

Pytanie 24

Funkcja
fun1(a,b) {
  if(a % 2 != 0) a++;
  for(let n = a; n <= b; n+=2) document.write(n);
}
ma na celu

A. wypisanie wszystkich liczb w przedziale od a do b
B. zwrócenie parzystych wartości liczb od a do b
C. wypisanie liczb parzystych w zakresie od a do b
D. sprawdzenie, czy liczba a jest nieparzysta; w przypadku pozytywnej odpowiedzi, jej wypisanie
W przypadku pierwszej błędnej odpowiedzi, najważniejszy błąd to myślenie, że funkcja zwraca wartości parzyste jak zwykły wynik. W rzeczywistości funkcja wypisuje te liczby na stronie za pomocą document.write(), więc to jest kluczowy szczegół. Druga niepoprawna odpowiedź jest na dobrej drodze, ale myli się w interpretacji 'wypisania liczb parzystych z przedziału od a do b'. Funkcja nie tylko wypisuje liczby parzyste, ale też sprawdza, czy a jest nieparzyste, i wtedy zmienia tę wartość. Co do trzeciej błędnej odpowiedzi, sugeruje ona, że funkcja wypisuje wszystkie liczby między a a b, co jest zupełnie błędne, bo pętla for zwiększa n o 2, więc tylko parzyste liczby się pojawią. Rozumienie jak działa pętla for oraz operator modulo jest kluczowe, żeby dobrze zrozumieć tę funkcję. Jeśli nie ogarniasz tych podstaw, ciężko będzie analizować kod w JavaScript i pisać lepsze programy.

Pytanie 25

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

A. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
B. operację arytmetyczną, a zawartość zmiennej była tekstem
C. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
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 26

Aby wykorzystać skrypt zapisany w pliku przyklad.js, trzeba połączyć go ze stroną używając kodu

A. <script>przyklad.js</script>
B. <script src="/przyklad.js"></script>
C. <script link="przyklad.js"></script>
D. <link rel="script" href="/przyklad.js">
Niepoprawne odpowiedzi opierają się na nieprawidłowym zrozumieniu sposobu łączenia plików JavaScript z dokumentem HTML. Na przykład, użycie <script>przyklad.js</script> jest błędne, ponieważ nie zawiera atrybutu 'src', który jest niezbędny do wskazania źródła pliku. Bez tego atrybutu przeglądarka nie wie, gdzie znaleźć skrypt, co skutkuje błędem ładowania. Podobnie, <script link="przyklad.js"></script> nie jest poprawnym sposobem na dołączenie skryptu. Atrybut 'link' nie istnieje w kontekście tagu <script>, co prowadzi do kompletnego zignorowania tego wpisu przez przeglądarkę. Dodatkowo, <link rel="script" href="/przyklad.js"> jest również błędny, ponieważ tag <link> jest przeznaczony do łączenia z arkuszami stylów CSS, a nie z plikami JavaScript. Prawidłowy kontekst użycia tych tagów jest kluczowy dla skutecznego zarządzania zasobami w dokumentach HTML. W praktyce, nieprzestrzeganie tych zasad może prowadzić do wielu problemów, takich jak błędy w działaniu skryptów, opóźnienia w ładowaniu strony oraz trudności w debugowaniu, co podkreśla znaczenie stosowania standardów i dobrych praktyk w programowaniu webowym.

Pytanie 27

Wyrażenie JavaScript:

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

Pytanie 28

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)
W analizowanych odpowiedziach pojawiają się spore błędy w podejściu do warunków. Na przykład, w pierwszej odpowiedzi masz 'liczba < 100 && liczba <= 200', co nie ma sensu, bo nie może być liczba, która jest mniejsza od 100, a jednocześnie mniejsza lub równa 200. Trochę się to kłóci, prawda? W drugiej odpowiedzi mamy '||', a to też jest mylące, bo mówi, że liczba może być większa od 100 LUB mniejsza lub równa 200. To oznacza, że liczby powyżej 200 też będą spełniać ten warunek, a to nie jest to, co chcemy. Ta kolejna odpowiedź mówi, że 'liczba < 100 || liczba >= 200' sprawdzi, czy liczba jest poniżej 100 LUB na 200 lub wyżej, co kompletnie pomija to, czego szukamy. Takie błędy często wynikają z tego, że nie do końca rozumiesz, jak działają te operatory. Kluczowe jest, żeby dobrze definiować warunki i wiedzieć, jak logika operatorów wpływa na wynik, bo to pozwala tworzyć lepsze aplikacje bez błędów.

Pytanie 29

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

A. wyłącznie w sekcji <body>, w znaczniku <java>
B. tak w sekcji <head>, jak i <body>, w znaczniku <java>
C. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
D. jedynie w sekcji <head>, w znaczniku <script>
Umieszczanie JavaScript w znaczniku <java> to całkowita pomyłka, bo taki znacznik nie istnieje w HTML. To może być mylące dla początkujących, którzy mogą pomyśleć, że to dobry sposób na dodawanie skryptów. Powinieneś używać znacznika <script>, to jest standard. Innym typowym błędem jest mylenie <head> z <body>. <head> zawiera różne metadane, jak linki do stylów czy skrypty, które powinny być załadowane na start. Ale wrzucanie skryptów tylko do <head> może spowolnić renderowanie treści. Najlepiej korzystać z obu sekcji w odpowiedni sposób, żeby optymalnie ładować stronę. Pamiętaj, że w HTML5 <script> ma atrybuty jak 'async' czy 'defer', które pomagają w zarządzaniu kolejnością skryptów i szybszym ładowaniu strony, co jest bardzo ważne przy tworzeniu nowoczesnych aplikacji.

Pytanie 30

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. obraz2.png zostanie wymieniony przez obraz1.png
B. obraz1.png zostanie zniknięty
C. obraz2.png zostanie zniknięty
D. obraz1.png zostanie wymieniony przez obraz2.png
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 31

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

A. imię2
B. #imie
C. imie2
D. imię%
Niepoprawne odpowiedzi wynikają z naruszenia zasad dotyczących tworzenia identyfikatorów w języku JavaScript. Przykładem jest odpowiedź zawierająca znak '#', który nie jest dozwolony na początku identyfikatora. Identyfikatory muszą zaczynać się od litery, znaku podkreślenia lub znaku dolara, co wyklucza użycie symboli takich jak '#'. Ponadto, w JavaScript nie można stosować znaków specjalnych, takich jak '%', co czyni inną odpowiedź niepoprawną. Znak '%' nie jest zgodny z zasadami nazewnictwa zmiennych, co prowadzi do błędów składniowych w kodzie. Odpowiedź z 'imię2' wprowadza dodatkowe problemy, gdyż użycie polskich znaków, takich jak 'ń', nie jest zalecane w identyfikatorach w JavaScript. Choć w niektórych środowiskach można to zrobić, standardy ECMAScript sugerują unikanie znaków diakrytycznych, co zwiększa przejrzystość i uniwersalność kodu. Dlatego zaleca się stosowanie prostych liter łacińskich oraz cyfr, aby zapewnić szeroką kompatybilność i uniknąć potencjalnych problemów podczas przenoszenia kodu pomiędzy różnymi systemami.

Pytanie 32

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

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

Pytanie 33

Jakie znaki lub sekwencje oznaczają początek komentarza w języku JavaScript?

A. #
B. //
C. <?
D. <!--
Pierwsza z niepoprawnych odpowiedzi to zestawienie znaków '<!--', które jest używane w HTML i XHTML do definiowania komentarzy, a nie w JavaScript. Komentarze HTML nie są interpretowane jako kod skryptowy, co sprawia, że nie mają zastosowania w kontekście języka JavaScript, którego składnia jest zupełnie odmienna. Druga nieprawidłowa odpowiedź, która używa znaku '<?', jest związana z PHP i jego formatem otwierającym. W JavaScript nie stosuje się tego znaku do oznaczania komentarzy. W rzeczywistości, PHP i JavaScript to różne języki programowania o różnych konwencjach i zastosowaniach, co sprawia, że użycie tego znaku w JavaScript jest nieprawidłowe. Ostatni znak '#', używany w wielu językach programowania, takich jak Python, do oznaczania komentarzy, również nie ma zastosowania w JavaScript. JavaScript nie interpretuje '#' jako znaku rozpoczynającego komentarz, co podkreśla różnice w składni tych języków. Zrozumienie tych różnic jest kluczowe dla efektywnego programowania oraz unikania błędów w kodzie.

Pytanie 34

Jakie zadanie wykonuje funkcja napisana w JavaScript?

function fun1(a,b)
{
    if ( a % 2 != 0 ) a++;
    for(n=a; n<=b; n+=2)
        document.write(n);
}
A. wypisanie wszystkich liczb w zakresie od a do b
B. wypisanie liczb parzystych w przedziale od a do b
C. zwrócenie parzystych wartości liczb od a do b
D. sprawdzenie, czy liczba a jest liczbą nieparzystą; jeśli tak, to jej wypisanie
Analiza niepoprawnych odpowiedzi wymaga zrozumienia, dlaczego poszczególne opcje nie pasują do działania funkcji fun1. W pierwszym przypadku, opcja dotycząca sprawdzania, czy liczba a jest nieparzysta i jej wypisywania, nie jest zgodna z logiką funkcji. Chociaż funkcja sprawdza, czy a jest nieparzysta, to nie wypisuje jej, lecz zmienia ją na parzystą, co wskazuje, że jej celem nie jest wypisywanie liczby a, ale przygotowanie jej do dalszej iteracji. Wypisanie wszystkich liczb z przedziału od a do b również nie jest prawidłowe, ponieważ funkcja nie iteruje po wszystkich liczbach, lecz wyłącznie po liczbach parzystych. Warto zauważyć, że funkcja pomija wszystkie liczby nieparzyste, co wyklucza tę opcję. Kolejna możliwa odpowiedź sugeruje zwracanie wartości parzystych liczb od a do b, jednak funkcja nie wykorzystuje żadnej procedury zwracania wartości, a jej konstrukcja wskazuje na bezpośrednie wypisywanie wyników, co wyklucza tę możliwość. Typowy błąd myślowy to niepoprawne rozumienie działania pętli for oraz operacji wypisywania danych w kontekście przeglądarki internetowej, co jest istotne z punktu widzenia dynamicznych aplikacji webowych. Zrozumienie, jak działa operator modulo i jego rola w wyznaczaniu parzystości liczb, jest kluczowe dla poprawnego interpretowania takich fragmentów kodu. Wskazane jest również, aby programiści byli świadomi różnicy między wypisywaniem a zwracaniem wyników, co często prowadzi do nieporozumień w kontekście funkcji i metod w JavaScript i innych językach programowania.

Pytanie 35

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

A. "def" > "abc"
B. "a" > "b"
C. "ab" > "c"
D. "abc" > "def"
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 36

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

A. debugowanie
B. kompilowanie
C. interpretowanie
D. zamiana na kod maszynowy
Wybór odpowiedzi związanej z debugowaniem jest błędny, ponieważ debugowanie to proces identyfikacji i naprawy błędów w kodzie, a nie jego wykonanie. Debugowanie zwykle polega na użyciu narzędzi takich jak przeglądarkowe konsolki developerskie, które pozwalają programistom na analizowanie i poprawianie kodu, ale nie jest to proces, w którym kod jest wykonywany. Z kolei kompilowanie to proces, w którym kod źródłowy jest przetwarzany na kod maszynowy przed jego wykonaniem, co ma miejsce w językach kompilowanych, a nie interpretowanych jak JavaScript. W kontekście JavaScript, nie zachodzi potrzeba kompilacji, ponieważ silnik przeglądarki interpretuje kod w czasie rzeczywistym. Ostatnia niepoprawna odpowiedź dotycząca zamiany na kod maszynowy może wprowadzać w błąd, ponieważ JavaScript nie jest konwertowany na kod maszynowy przed wykonaniem. Chociaż niektóre nowoczesne silniki JavaScript mogą stosować techniki optymalizacji, takie jak JIT (Just-In-Time Compilation), to wciąż jest to proces interpretacji, a nie pełna zamiana na kod maszynowy przed rozpoczęciem działania skryptu. Dlatego odpowiedzi związane z debugowaniem, kompilowaniem i zamianą na kod maszynowy są niepoprawne w kontekście wykonywania kodu JavaScript w przeglądarkach.

Pytanie 37

Jakie będzie wyjście programu napisanego w języku JavaScript, umieszczonego w ramce, po podaniu wartości 5 na wejściu?

Ilustracja do pytania
A. 120
B. 60
C. 125
D. 625
Program przedstawiony w pytaniu służy do obliczenia silni liczby n wprowadzonej przez użytkownika. Zrozumienie, dlaczego wynik wynosi 120, a inne odpowiedzi są błędne, wymaga dokładnego prześledzenia, jak działa silnia i jak przebiega obliczenie w pętli for. Silnia liczby n, zapisywana jako n!, to iloczyn wszystkich liczb od 1 do n. Dla wartości 5, program oblicza 5! jako 5*4*3*2*1, co daje 120. Błędne odpowiedzi wynikają zazwyczaj z niepoprawnego zrozumienia zasady działania pętli oraz operacji matematycznych. Na przykład, wynik 60 mógłby sugerować niepełne wykonanie iteracji, na przykład jeśli pętla kończyłaby się wcześniej, ale kod jasno określa, że iteruje od n do 2. Wynik 125 mógłby być wynikiem błędnego użycia operatorów matematycznych, np. dodawania zamiast mnożenia. Odpowiedź 625 mogłaby sugerować niepoprawną interpretację, gdzie liczba 5 zostałaby błędnie pomnożona przez samą siebie pięciokrotnie, co nie dotyczy silni. Takie błędy są powszechne w kontekście programowania, gdzie operatory i zakresy iteracji muszą być prawidłowo zrozumiane i zastosowane. Rozumienie poprawnego działania pętli for oraz operatora *= jest kluczowe dla uniknięcia takich błędów i poprawnego implementowania algorytmów matematycznych w kodzie. Praktyka i analiza przykładowych problemów mogą znacznie poprawić zdolność do pisania skutecznego i bezbłędnego kodu.

Pytanie 38

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

Pytanie 39

W deklaracji w języku JavaScript:```var x=true;``` zmienna x przyjmuje typ

A. liczbowym
B. logicznym
C. ciąg znaków
D. wyliczeniowym
Wybór opcji liczbowego, wyliczeniowego lub ciągu znaków jest błędny z kilku kluczowych powodów. Przede wszystkim, typ liczbowy w JavaScript reprezentuje dane numeryczne, takie jak całkowite liczby i liczby zmiennoprzecinkowe, na przykład `var y = 5;`. Zmienne typu liczbowego nie mogą przyjmować wartości logicznych. Z kolei typ wyliczeniowy, którego nie ma w JavaScript, jest typem danych reprezentującym zestaw możliwych wartości, często używanym w innych językach programowania, jak C czy Java, ale nie odnosi się do kodu JavaScript. W JavaScript nie mamy również formalnych typów wyliczeniowych, co może prowadzić do nieporozumień. Jeśli chodzi o ciągi znaków, są one reprezentowane w JavaScript przez tekst umieszczony w cudzysłowach, na przykład `var str = 'tekst';`, i również nie są związane z wartościami boolean. Typowe błędy myślowe, które mogą prowadzić do błędnych odpowiedzi, obejmują mylenie operacji logicznych z arytmetycznymi, co może sprawić, że programista zakłada, że zmienna logiczna może być interpretowana jako liczba. Dodatkowo, w kontekście typów danych w JavaScript, ważne jest zrozumienie, że każdy typ ma swoje specyficzne zastosowania i reguły, co jest kluczowe dla prawidłowego modelowania danych w aplikacjach.

Pytanie 40

Jakie wartości zwróci funkcja wypisz2) napisana w języku JavaScript?

Ilustracja do pytania
A. 3 4 6
B. 6
C. 2 3 4 6
D. 3 4 6 8
W przypadku przedstawionego pytania istotne jest zrozumienie jak działa struktura iteracyjna oraz warunkowa w języku JavaScript. Funkcja wypisz operuje na zmiennej a która jest modyfikowana wewnątrz pętli. Pętla for wykonuje sześć iteracji przy czym każda z nich zwiększa wartość a o 1. Warto zauważyć że warunek if sprawdza podzielność zmiennej a przez 2 lub 3. Elementy takie jak 2 które mogą się wydawać poprawne nie spełniają warunku ponieważ są wynikiem pierwszego zwiększenia a nie pierwszej wartości która spełnia warunek if. Zrozumienie operacji modulo i jego zastosowania w tym kontekście jest kluczowe dla prawidłowej interpretacji działania funkcji. Często spotykanym błędem jest zakładanie że każda liczba naturalna w sekwencji iteracji zostanie wypisana co prowadzi do niepoprawnych wniosków. Analizowanie kodu linia po linii i rozumienie działania operacji logicznych oraz arytmetycznych jest podstawą dobrego programowania oraz przygotowania do rozwiązywania tego typu zadań egzaminacyjnych. Kluczowe jest także zrozumienie że w programowaniu operujemy na zmiennych i ich wartościach wynikających z określonych operacji a nie tylko na ich początkowych wartościach.