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: 21 lutego 2026 21:22
  • Data zakończenia: 21 lutego 2026 21:49

Egzamin zdany!

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

Wymagane minimum: 20 punktów (50%)

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

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. ciągu liczb od 1 do 100
C. wylosowanych liczb z zakresu od 1 do 99
D. liczb wprowadzonych z klawiatury, aż do momentu wprowadzenia wartości 0
Kod źródłowy przedstawiony w pytaniu inicjuje losowanie liczb w przedziale od 0 do 100 i wyświetla je na ekranie aż do momentu wylosowania liczby 0. Taki sposób działania jest możliwy dzięki zastosowaniu pętli while która wykonuje się dopóki warunek w niej zawarty jest spełniony. W tym przypadku warunek ten to różność zmiennej liczba od zera. Funkcja rand(0 100) generuje losowe liczby całkowite z zadanego przedziału. W momencie wylosowania wartości 0 pętla przestaje się wykonywać co skutkuje zakończeniem procesu wyświetlania liczb na ekranie. Tego typu pętle są często używane w programowaniu do tworzenia losowych zdarzeń np. w grach komputerowych gdzie potrzebne jest dynamiczne generowanie wartości. Warto zwrócić uwagę na to że funkcja rand jest standardową funkcją w wielu językach programowania pozwalającą na generowanie losowych liczb co jest przydatne w testowaniu algorytmów w różnych warunkach. Praktyka ta wspomaga proces nauki i doskonalenia umiejętności programistycznych dzięki możliwości symulacji losowych scenariuszy.

Pytanie 2

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

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

Pytanie 3

Jaki jest cel zapisu w języku JavaScript?

var napis1 = new napisy();
A. zainicjowanie zmiennej napis1 oraz wywołanie funkcji, której argumentem jest napis1
B. stworzenie obiektu napis1 z klasy napisy
C. wykonanie metody obiektu napisy
D. założenie nowej klasy napis1
Prawidłowa odpowiedź dotyczy utworzenia obiektu napis1 klasy napisy. W języku JavaScript, aby stworzyć nowy obiekt na podstawie istniejącej klasy lub funkcji konstruktora, używamy słowa kluczowego new. Wyrażenie var napis1 = new napisy() inicjalizuje nowy obiekt napis1, który jest instancją klasy napisy. Taki zapis jest kluczowy w programowaniu obiektowym, które pozwala na tworzenie wielu instancji obiektów z podobnymi właściwościami i metodami. Praktyczne zastosowanie tego podejścia jest szerokie od modelowania danych po tworzenie modularnych i łatwych do zarządzania aplikacji. Dobra praktyka nakazuje, aby klasy były dobrze zdefiniowane z jasno określonymi właściwościami i metodami, co ułatwia ich ponowne wykorzystanie i rozszerzanie. W programowaniu funkcjonalnym JavaScript często wykorzystuje się prototypowe dziedziczenie, które pozwala na zmniejszenie liczby powtarzalnych kodów oraz efektywne zarządzanie pamięcią. Warto także pamiętać, że w nowoczesnych wersjach JavaScript stosowane są klasy ES6, które wprowadzają bardziej zrozumiałą składnię dla tworzenia klas i obiektów co poprawia czytelność i strukturę kodu.

Pytanie 4

W języku JavaScript, aby zmienić wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById, należy zastosować

A. metodę getAttribute
B. metodę setAttribute
C. pole attribute i podać nazwę atrybutu
D. pole innerHTML
Wybór innych metod lub pól do zmiany wartości atrybutów w elementach HTML wskazuje na pewne nieporozumienia dotyczące sposobu działania DOM w JavaScript. Metoda getAttribute służy do odczytywania wartości atrybutu, a nie do jego modyfikacji. Użytkownik może mylnie sądzić, że wystarczy odczytać wartość atrybutu, aby następnie ją zmienić, co jest błędne. Podobnie, pole innerHTML jest używane do manipulacji zawartością wewnętrzną elementu, a nie bezpośrednio do zmiany atrybutów. Umożliwia to wstawienie lub zmianę HTML w obrębie elementu, ale nie wpływa na atrybuty, co może prowadzić do niezamierzonych efektów, takich jak utrata istniejących atrybutów. W przypadku, gdy ktoś zdecyduje się użyć pola attribute, wprowadza zamieszanie, ponieważ nie istnieje takie pole w standardowym obiekcie DOM. Dlatego kluczowe jest zrozumienie różnicy pomiędzy odczytem a zapisem atrybutów, co jest fundamentalne dla efektywnego programowania w JavaScript. Aby uniknąć typowych błędów, programiści powinni skupić się na wykorzystaniu właściwych metod i narzędzi, co zapewni prawidłowe zarządzanie atrybutami w dokumentach HTML.

Pytanie 5

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

function fun1(f) {
    if (f < 0) f = f * (-1);
    return f;
}
Jej celem jest:
A. Zwrócić wartość odwrotną do argumentu f
B. Zwrócić wartość bezwzględną argumentu f
C. Wypisać wartość odwrotną do argumentu f
D. Wypisać wartość bezwzględną 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 6

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

A. wyliczeniowym
B. ciąg znaków
C. liczbowym
D. logicznym
Odpowiedź logicznego jest poprawna, ponieważ w języku JavaScript wyrażenie `var x = true;` przypisuje do zmiennej `x` wartość typu boolean, która jest jednym z dwóch stanów: `true` lub `false`. Typ boolean jest kluczowym elementem programowania, służącym do wykonywania logiki warunkowej, co jest niezbędne w większości aplikacji. Na przykład, używając warunków if-else, możemy podejmować decyzje na podstawie wartości boolean. W praktyce, po przypisaniu `x`, możemy używać go w instrukcjach warunkowych, jak w poniższym przykładzie: `if (x) { console.log('X jest prawdą'); } else { console.log('X jest fałszem'); }`. Ponadto, dobrym standardem jest oznaczanie zmiennych typem boolean poprzez użycie prefiksów, jak `is` lub `has`, co poprawia czytelność kodu. Wspieranie logiki programowania przy użyciu typów prostych jest kluczowe w inżynierii oprogramowania, co czyni tę wiedzę istotną.

Pytanie 7

Aby właściwie skomentować podaną linię kodu w JavaScript, należy po znakach // wpisać opis

document.getElementById("napis").innerHTML = Date(); //
A. nieprawidłowe dane
B. zmiana stylu atrybutu innerHTML
C. wyświetlenie tekstu "Date()" w znaczniku o id = napis
D. wyświetlenie daty i czasu w znaczniku o id = napis
Kod JavaScript document.getElementById('napis').innerHTML=Date(); służy do dynamicznego umieszczania aktualnej daty i czasu w elemencie HTML o podanym id napis. Funkcja Date() bez argumentów zwraca obiekt reprezentujący bieżącą datę i czas w formie czytelnej dla człowieka. Użycie innerHTML pozwala na modyfikację zawartości HTML elementu, co jest wykorzystywane w wielu aplikacjach internetowych do dynamicznej aktualizacji wyświetlanych danych. Przykładem praktycznego zastosowania może być wyświetlanie aktualnego czasu na stronie głównej lub w aplikacjach pogodowych. Zgodnie z dobrymi praktykami, należy jednak pamiętać, że innerHTML zastępuje całą zawartość wewnętrzną elementu, co może prowadzić do utraty danych, jeśli nie jest używane ostrożnie. Ważne jest również, aby pamiętać o zasadach bezpieczeństwa dotyczących manipulacji DOM, aby unikać luk umożliwiających ataki XSS. Dlatego też warto stosować się do zasady minimalizmu zmian w DOM oraz zawsze weryfikować przetwarzane dane.

Pytanie 8

Który z poniższych sposobów wyświetlania tekstu nie jest określony w języku JavaScript?

A. Właściwość innerHTML
B. Funkcja MessageBox()
C. Funkcja window.alert()
D. Metoda document.write()
Funkcja MessageBox() nie istnieje w JavaScript, więc to nie jest dobła odpowiedź, jeśli chodzi o wyświetlanie tekstu. W JavaScript mamy kilka fajnych metod, które można wykorzystać do pokazywania danych na stronie. Na przykład, możesz użyć innerHTML, żeby zmieniać zawartość HTML elementów. Możesz to zrobić tak: document.getElementById('elementId').innerHTML = 'Nowa zawartość';. Inna opcja to window.alert(), która wyświetla okno z komunikatem dla użytkownika, co czasem bywa przydatne. Z kolei, jeśli chcesz coś wypisać na stronie w momencie, gdy się ładuje, to możesz użyć document.write('Hello, World!');, choć to nie jest najlepszy pomysł w nowoczesnym kodowaniu. Warto pamiętać, że wszystkie te metody są częścią ECMAScript i naprawdę często się je stosuje w praktyce programowania.

Pytanie 9

W języku JavaScript stworzono obiekt Samochod. Aby wywołać jedną z jego metod, trzeba wpisać

A. Samochod.spalanie_na100
B. Samochod()
C. Samochod.spalanie()
D. Samochod.kolor
W języku JavaScript obiekt to podstawowa jednostka, która pozwala na grupowanie danych i funkcji w jednym miejscu. W kontekście zdefiniowanego obiektu Samochod, aby wywołać jego metodę, należy skorzystać z notacji kropkowej. Poprawne użycie to Samochod.spalanie(), co wskazuje na wywołanie metody 'spalanie' z obiektu 'Samochod'. Ta metoda może zawierać logikę obliczającą zużycie paliwa lub inne operacje związane z danym samochodem. Warto zauważyć, że metody w JavaScript są funkcjami przypisanymi do obiektów, co umożliwia ich wywołanie za pomocą notacji kropkowej. Przykładowo, jeśli obiekt Samochod ma zdefiniowaną metodę spalanie, możemy ją zainicjować i uzyskać wynik, co czyni nasz kod bardziej modularnym i czytelnym. Użycie odpowiednich metod jest zgodne z zasadami programowania obiektowego, które są fundamentem JavaScript. Metody obiektów mogą korzystać z właściwości innych obiektów, co zwiększa elastyczność programowania. Ta architektura jest zgodna ze standardem ECMAScript, który definiuje zasady dotyczące obiektów i funkcji w JavaScript.

Pytanie 10

Co robi funkcja przedstawiona w kodzie JavaScript?

function tekst() {
var h = location.hostname;
document.getElementById("info").innerHTML = h;
}
A. wyświetlić w elemencie o id = "info" adres hosta wskazany przez pierwszy odnośnik
B. umożliwić przejście do wskazanej lokalizacji hosta
C. pokazać na przycisku lokalizację hosta, a po jego naciśnięciu umożliwić przejście do określonej lokalizacji
D. wyświetlić w elemencie o id = "info" nazwę hosta, z którego pochodzi wyświetlona strona
Prawidłowa odpowiedź wskazuje, że kod JavaScript wywołuje metodę location.hostname, która zwraca nazwę hosta aktualnie odwiedzanej strony. Hostname jest częścią obiektu Location, który reprezentuje bieżący URL dokumentu. Kod przypisuje wynik tej metody do zmiennej h, a następnie ustawia innerHTML elementu o id info na wartość tej zmiennej. Dzięki takim operacjom, kod efektywnie wyświetla nazwę hosta w elemencie o konkretnym identyfikatorze na stronie HTML. Jest to częsta technika używana w aplikacjach webowych, gdzie istotne jest dynamiczne wyświetlanie informacji o aktualnym połączeniu. Znajomość obiektu Location oraz jego właściwości, takich jak hostname, to podstawowa umiejętność w pracy z językiem JavaScript, szczególnie w kontekście manipulacji DOM. Takie podejście jest zgodne z dobrymi praktykami, gdyż unika bezpośredniego wpisywania danych w kodzie, co zwiększa elastyczność i ułatwia utrzymanie aplikacji.

Pytanie 11

W języku JavaScript stworzono funkcję o nazwie liczba_max, która porównuje trzy liczby naturalne przekazane jako argumenty i zwraca największą z nich. Jak powinno wyglądać prawidłowe wywołanie tej funkcji oraz uzyskanie jej wyniku?

A. liczba_max(a,b,c,wynik);
B. var wynik=liczba_max(a,b,c);
C. liczba_max(a,b,c);
D. liczba_max(a,b,c)=wynik;
Odpowiedzi takie jak "liczba_max(a,b,c);" nie są poprawne, ponieważ brak w nich przypisania wyniku funkcji do zmiennej. W języku JavaScript funkcje są wywoływane, ale ich rezultat musi być z miejsca przechowywany, jeśli mamy zamiar go wykorzystać. Prawidłowe wywołanie funkcji powinno zawsze uwzględniać kontekst, w którym wynik ma być użyty. W przypadku "liczba_max(a,b,c,wynik);" występuje nieprawidłowa liczba argumentów, ponieważ funkcja nie wymaga czwartego parametru, co prowadzi do błędów wykonania. Odpowiedź "liczba_max(a,b,c)=wynik;" również nie jest poprawna, ponieważ w JavaScript nie możemy przypisać wartości bezpośrednio do wywołania funkcji. To podejście narusza zasady składniowe języka. W przypadku kiedy spróbujemy zastosować takie zapisy, interpreter języka zgłosi błąd. Warto zauważyć, że błędne myślenie o strukturze funkcji i jej wywołaniu wynika często z nieznajomości podstaw składni oraz koncepcji programowania. Dobre praktyki w programowaniu rekomendują, aby zawsze przy wywołaniu funkcji, której wynik chcemy przechować, użyć operatora przypisania. W przeciwnym wypadku, nie będziemy mogli uzyskać dostępu do wartości, które funkcja generuje.

Pytanie 12

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

A. pierwiastka kwadratowego z liczby
B. bezwzględnej wartości liczby
C. przybliżonej wartości liczby
D. potęgi liczby
Wybór wartości przybliżonej liczby jako odpowiedzi wskazuje na nieporozumienie dotyczące funkcji Math.pow(). Należy zaznaczyć, że funkcja ta nie wykonuje operacji związanej z zaokrąglaniem ani przybliżaniem liczb. W praktyce zaokrąglanie wartości liczbowych w JavaScript można osiągnąć za pomocą funkcji takich jak Math.round(), Math.ceil() czy Math.floor(). Wartości przybliżone są często mylone z potęgami, ale to zupełnie różne koncepcje. Podobnie, odpowiedź odnosząca się do wartości bezwzględnej jest myląca, ponieważ funkcja Math.pow() nie ma nic wspólnego z obliczaniem wartości bezwzględnej, co można zrobić za pomocą Math.abs(). Z kolei pierwiastek kwadratowy liczby, który można obliczyć, korzystając z Math.sqrt(), również nie jest funkcją powiązaną z potęgowaniem. Mylenie tych koncepcji często wynika z nieprecyzyjnego rozumienia funkcji matematycznych oraz ich zastosowania w programowaniu. Kluczowe jest zrozumienie, że Math.pow() jest specjalistycznym narzędziem do obliczania potęg, co różni się fundamentalnie od operacji takich jak zaokrąglanie, wartość bezwzględna czy pierwiastkowanie. Właściwe zrozumienie funkcji matematycznych ułatwia pisanie efektywnego i poprawnego kodu, zgodnie z najlepszymi praktykami inżynierii oprogramowania.

Pytanie 13

Zdarzenie JavaScript onmousedown występuje, gdy

A. został naciśnięty dwa razy klawisz myszy komputerowej.
B. wskaźnik myszy komputerowej wyszedł poza obręb obiektu.
C. został wciśnięty dowolny klawisz myszy komputerowej na danym elemencie.
D. wskaźnik myszy komputerowej znalazł się w obrębie obiektu.
Poprawnie – zdarzenie onmousedown w JavaScript wywołuje się dokładnie w momencie, gdy użytkownik naciska dowolny klawisz myszy na danym elemencie. Nie ma znaczenia, czy to jest lewy, prawy czy środkowy przycisk, samo fizyczne wciśnięcie przycisku nad elementem powoduje uruchomienie tego eventu. Z punktu widzenia przeglądarki jest to bardzo wczesny etap interakcji myszą: najpierw pojawia się onmousedown, później ewentualnie onmouseup, a dopiero z kombinacji tych dwóch czasem wynika onclick. Moim zdaniem warto to sobie dobrze poukładać, bo w praktyce front-endowca to jedna z podstawowych rzeczy przy obsłudze interfejsu. onmousedown jest używany wszędzie tam, gdzie chcesz zareagować natychmiast po naciśnięciu przycisku, a nie dopiero po jego puszczeniu. Klasyczny przykład to przeciąganie elementów (drag and drop): w onmousedown zapamiętujesz, że użytkownik „złapał” element, podpinasz nasłuch na mousemove, a w mouseup kończysz przeciąganie. Innym typowym zastosowaniem są własne przyciski i kontrolki, gdzie chcesz np. zmienić styl od razu po wciśnięciu (wrażenie wciśniętego guzika), albo rozpocząć jakąś akcję ciągłą, np. przytrzymanie przycisku powoduje powiększanie mapy czy przewijanie listy. W nowoczesnym JavaScript raczej używa się addEventListener("mousedown", handler) zamiast atrybutu onmousedown w HTML, bo to zgodne z dobrymi praktykami separacji logiki od struktury (HTML + JS osobno). Sam event obiektu MouseEvent przekazuje też szczegóły, np. który przycisk został naciśnięty (właściwość button), pozycję kursora, stan klawiszy modyfikujących itd. Dobrze wiedzieć, że onmousedown nie jest powiązany z wyjściem kursora poza element ani z podwójnym kliknięciem – od tego są inne zdarzenia, co często myli początkujących.

Pytanie 14

Jaki wynik wyświetli poniższy fragment kodu JavaScript?

x='Powodzenia na egzaminie';
z=x.substring(3,9);
y=z.substring(2,4);
document.write(y);
A. ze
B. owodzeni
C. wo
D. wodzenia
W analizowanym zadaniu błędne odpowiedzi wynikają z nieprawidłowego zrozumienia działania funkcji substring w JavaScript która służy do ekstrakcji fragmentu tekstu z ciągu. Kluczowym elementem jest tutaj zrozumienie że indeksowanie stringów zaczyna się od zera co oznacza że pierwszy znak w ciągu ma indeks 0. W przypadku x.substring(3,9) funkcja ta wyodrębnia znaki od indeksu 3 do 8 ponieważ drugi parametr w tej funkcji jest ekskluzywny co oznacza że nie jest uwzględniany w wyniku. Dlatego daje to fragment wodzen. Kolejna operacja z.substring(2,4) bierze pod uwagę wycinek od indeksu 2 do 3 tego nowego ciągu co skutkuje wynikiem ze. Błędne odpowiedzi mogą wynikać z nieznajomości tego jak działa substr w porównaniu do substring ponieważ substr używa innego podejścia wskazując długość a nie końcowy indeks. Innym częstym błędem jest mylenie indeksów co prowadzi do nieprawidłowych wycinków tekstu. Błędy takie mogą prowadzić do problemów w kodzie zwłaszcza przy przetwarzaniu danych wejściowych czy dynamicznym generowaniu zawartości strony co jest częstym zadaniem w web development. Zrozumienie jak dokładnie działa każdy z tych mechanizmów jest kluczowe dla tworzenia poprawnego i bezpiecznego kodu. Warto także pamiętać o testowaniu kodu aby uniknąć nieprzewidywalnych zachowań wynikających z nieprawidłowych wycinków tekstu co może wpłynąć na całość aplikacji.

Pytanie 15

Fragmenty kodu JavaScript w dokumencie HTML mogą być umieszczone

A. wyłącznie w sekcji <body>, w znaczniku <java>
B. zarówno w sekcji <head>, jak i <body>, w znaczniku <java>
C. wyłącznie w sekcji <head>, w znaczniku <script>
D. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
Wstawianie kodu JavaScript w dokumenty HTML to naprawdę istotna sprawa. Dzięki temu możemy dodawać różne interaktywne funkcje do naszych stron. Warto wiedzieć, że umiejscowienie tego kodu ma ogromne znaczenie dla tego, jak szybko strona się ładowała. Możemy wstawić skrypty w sekcji <head> albo w <body>, ale zawsze muszą być w znaczniku <script>. Kiedy wrzucamy kod do <head>, skrypty ładują się przed resztą zawartości, co może trochę spowolnić ładowanie strony, bo przeglądarka musi najpierw załadować skrypty. Z drugiej strony, jeśli wstawimy je na dole w <body>, strona ładowana jest szybciej, bo najpierw widzimy zawartość, co jest lepsze dla użytkownika. Dobrze też korzystać z atrybutów async lub defer, żeby poprawić wydajność ładowania. Zgodnie z wytycznymi W3C, używanie znacznika <script> to najlepszy sposób na zapewnienie, że wszystko działa, a skrypty są kompatybilne z przeglądarkami. Można to zobaczyć na przykład, gdy chcemy użyć biblioteki jQuery lub dodać jakieś interaktywne elementy na stronie.

Pytanie 16

W języku JavaScript przedstawiona definicja jest definicją

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

Pytanie 17

Jak należy prawidłowo udokumentować wzorcowanie pola nazwa we fragmencie kodu JavaScript?

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
B. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
C. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
D. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
Weryfikacja pola nazwa przy użyciu wyrażeń regularnych w aplikacji JavaScript jest kluczowym elementem zapewnienia integralności danych wejściowych. Niektóre przedstawione opcje zawierają błędne założenia na temat porządku i wymogów składniowych wzorca. Przykładowo, nieprawidłowe jest założenie, że jedynie dowolny ciąg cyfr (bez zer) wystarczy, ponieważ kod wyraźnie wymaga, aby po cyfrach nastąpiła jedna duża litera, a następnie minimum dwie małe litery. Niezrozumienie tego może prowadzić do błędnych założeń dotyczących logiki walidacji. Niedokładne opisy wzorca mogą prowadzić do błędów w implementacji, co może skutkować działaniem niezgodnym z oczekiwaniami. Ponadto, dobre praktyki programistyczne zawsze sugerują, aby dokumentacja była dokładna i odzwierciedlała rzeczywiste wymagania kodu, co w tym przypadku oznacza precyzyjne określenie kolejności i wymogów dotyczących znaków. Niewłaściwe rozumienie wyrażeń regularnych może również prowadzić do błędów bezpieczeństwa, takich jak podatność na wstrzykiwanie danych, dlatego kluczowe jest poprawne udokumentowanie wzorca, aby zapewnić bezpieczne przetwarzanie danych użytkowników.

Pytanie 18

Co to jest AJAX?

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

Pytanie 19

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
Błędne odpowiedzi opierają się na nieprawidłowej interpretacji sposobu dostępu do właściwości obiektów w JavaScript. Notacja 'obiekt:w' nie jest poprawna, ponieważ nie stosuje się dwukropka do uzyskiwania dostępu do właściwości. Dwukropek jest używany w kontekście tworzenia obiektów, gdzie określa parę klucz-wartość, a nie podczas odczytywania wartości. Z kolei notacja 'obiekt::w' w JavaScript również nie ma zastosowania. Podwójny dwukropek nie jest uznawany za prawidłową operację i nie ma zastosowania w kontekście obiektów. Zresztą, w wielu innych językach programowania, takich jak C++ czy Python, używa się podwójnego dwukropka w zupełnie innym kontekście, co może prowadzić do pomyłek. Ostatnia odpowiedź 'obiekt->w' może sugerować wpływy z języków takich jak C czy C++, gdzie operator strzałki '->' jest używany do dostępu do właściwości wskaźnika na obiekt. W JavaScript jednak nie używa się wskaźników, a dostęp do właściwości obiektu odbywa się przez notację kropkową lub notację indeksu. Właściwe zrozumienie tych koncepcji jest kluczowe dla efektywnego programowania w JavaScript, a błędne podejście do notacji prowadzi do frustracji i błędów w kodzie.

Pytanie 20

Który zapis w języku JavaScript daje jednakowy rezultat do przedstawionego kodu?

x = 0;
x += 10;
A. x = 10; x = 0;
B. x = 10; x = x + 10;
C. x = 0; x--; x *= 9;
D. x = 0; x++; x = x + 9;
Doskonale! Wybrałeś prawidłową odpowiedź, która jest zgodna z przykładem kodu przedstawionym na zdjęciu. W JavaScript, zapis 'x = 0; x++; x = x + 9;' działa w następujący sposób: najpierw zmienna 'x' jest inicjalizowana wartością 0. Następnie, operator inkrementacji '++', zwiększa wartość zmiennej 'x' o 1. Końcowa instrukcja dodaje 9 do obecnej wartości zmiennej 'x', która wynosi 1. W rezultacie końcowa wartość zmiennej 'x' wynosi 10, co jest zgodne z kodem przedstawionym na zdjęciu. To jest praktyczne zastosowanie operatorów inkrementacji oraz dodawania w JavaScript, umożliwiające manipulację wartościami zmiennych. To jest ważne w kontekście algorytmów i operacji matematycznych. Warto zwrócić uwagę, że operator '++' jest skrótem dla 'x = x + 1', co jest zgodne ze standardami JavaScript.

Pytanie 21

Poniżej zamieszczony fragment skryptu w JavaScript zwróci

Ilustracja do pytania
A. owodzeni
B. ze
C. wodzenia
D. wo
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 22

Jakiego języka należy użyć, aby stworzyć skrypt realizowany po stronie klienta w przeglądarki internetowej?

A. Python
B. PHP
C. JavaScript
D. Perl
JavaScript to język skryptowy, który super nadaje się do interakcji z użytkownikami w przeglądarkach. Właściwie to jedyny język z tej całej paczki, który działa po stronie klienta. To znaczy, że skrypty w JavaScript są interpretowane przez przeglądarkę, a nie przez serwer. Można go używać na przykład do zmieniania treści stron w locie, walidacji formularzy, animacji i różnych interaktywnych elementów. Jest też ważnym elementem w technologiach internetowych, obok frameworków jak React, Angular czy Vue.js, które pomagają tworzyć nowoczesne aplikacje webowe. Uważam, że każdy programista webowy powinien znać JavaScript przynajmniej na poziomie średnim, żeby wdrażać dobre praktyki dotyczące wydajności i UX. Standardy takie jak ECMAScript mówią, jak ten język ma działać, a jego wszechstronność sprawia, że obecnie jest jednym z najpopularniejszych języków programowania na świecie. Ostatnio dużo mówi się też o używaniu go po stronie serwera z Node.js.

Pytanie 23

Co oznacza zapis w obiekcie w języku JavaScript?

x = przedmiot.nazwa();
A. nazwa jest cechą obiektu przedmiot
B. nazwa jest atrybutem klasy przedmiot
C. zmienna x będzie przechowywać wynik działania metody nazwa
D. zmienna x będzie przechowywać rezultat działania funkcji przedmiot
W języku JavaScript wyrażenie przedmiot.nazwa() oznacza wywołanie metody nazwa na obiekcie przedmiot. Wynik tego wywołania jest przypisywany do zmiennej x. Metody są funkcjami zdefiniowanymi wewnątrz obiektu które mogą wykorzystywać jego dane. Przy wywołaniu metody używamy operatora kropki do dostępu do konkretnej funkcji w obiekcie. Taki zapis jest powszechnie stosowany w programowaniu obiektowym i pozwala na wykonywanie operacji zdefiniowanych w kontekście danego obiektu. Dobre praktyki zalecają aby nazewnictwo metod było opisowe co ułatwia rozumienie kodu i jego utrzymanie przez innych programistów. Przykładem może być obiekt samochód mający metodę uruchom która po wywołaniu realizuje logikę uruchomienia samochodu. Warto również zwrócić uwagę na aspekt asynchroniczności który w JavaScript ma duże znaczenie zwłaszcza przy operacjach sieciowych gdzie często stosuje się metody zwracające obietnice. Dzięki temu zapis x = przedmiot.nazwa() jest podstawowym przykładem zastosowania programowania obiektowego w praktyce

Pytanie 24

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

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

Pytanie 25

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. zmienić styl obrazu o id równym i1
B. ukryć obraz2.gif
C. wyświetlić obraz2.gif obok obraz1.gif
D. zamienić obraz1.gif na 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 26

Jaki będzie efekt wykonania poniższego kodu JavaScript?

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Dodanie akapitu na końcu strony
B. Skasowanie akapitu ze strony
C. Pokazanie okna dialogowego z napisem akapit
D. Wstawienie akapitu na szczycie strony
Kod JavaScript przedstawiony w pytaniu tworzy nowy element paragrafu HTML za pomocą metody document.createElement("p") i dodaje go na koniec elementu body strony za pomocą metody appendChild(). Dlatego poprawna odpowiedź to dodanie akapitu na koniec strony. Tworzenie elementów dynamicznie w JavaScript to kluczowa funkcja umożliwiająca manipulację modelem DOM (Document Object Model) co jest podstawą dynamicznego interfejsu użytkownika. Przykłady zastosowań obejmują dodawanie nowych elementów do listy rozwijanej formularza aktualizację zawartości strony bez konieczności jej przeładowywania czy dodawanie interaktywnych komponentów. Zgodnie z dobrymi praktykami warto pamiętać o konieczności optymalizacji operacji na DOM ponieważ mogą być kosztowne obliczeniowo. Efektywne zarządzanie drzewem DOM wymaga także znajomości innych metod takich jak insertBefore czy replaceChild które pozwalają na bardziej zaawansowane manipulacje struktury dokumentu. Przy projektowaniu dynamicznych aplikacji webowych należy zawsze pamiętać o zachowaniu dostępności i semantyki HTML co jest istotne z punktu widzenia SEO i użyteczności strony.

Pytanie 27

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 28

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

A. <p id="akapit">akapit2</p>
B. <p class="akapit">akapit4</p>
C. <p>akapit</p>
D. <p href="/akapit">akapit3</p>
Metoda DOM getElementsByClassName jest jedną z najważniejszych funkcji w JavaScript, która pozwala na selekcję elementów na stronie internetowej na podstawie ich klas CSS. W tym przypadku, odpowiedź <p class="akapit">akapit4</p> jest poprawna, ponieważ element ten ma przypisaną klasę "akapit", co czyni go bezpośrednim kandydatem do selekcji przez metodę getElementsByClassName('akapit'). Metoda ta zwraca kolekcję elementów (HTMLCollection), które mają podaną klasę, a następnie można z nimi pracować w kodzie JavaScript. Na przykład, możemy zmieniać ich style, zawartość lub dodawać zdarzenia. Dobrą praktyką jest stosowanie klas do stylizacji oraz manipulacji DOM, co pozwala na lepszą organizację kodu i zwiększa jego czytelność. Pamiętaj, że klasy są bardziej uniwersalne i elastyczne niż identyfikatory (ID), które powinny być unikalne na stronie. W przypadku konieczności stosowania metod do manipulacji elementami DOM, warto znać również inne metody, takie jak querySelector i querySelectorAll, które oferują bardziej zaawansowane opcje selekcji, umożliwiające wykorzystanie kombinacji klas, identyfikatorów i innych atrybutów.

Pytanie 29

Jakie jest zadanie funkcji przedstawionej w języku JavaScript?

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

Pytanie 30

W JavaScript stworzono funkcję o nazwie licz_pitagoras, która oblicza długość przeciwprostokątnej w trójkącie prostokątnym, zgodnie z twierdzeniem Pitagorasa. Funkcja przyjmuje dwa parametry wejściowe i zwraca wynik. Poprawne wywołanie tej funkcji, wraz z uzyskaniem zwróconej wartości, będzie miało formę

A. licz_pitagoras(a, b) = c;
B. licz_pitagoras(a, b);
C. licz_pitagoras(a, b, c);
D. c = licz_pitagoras(a, b);
Wywołanie funkcji w JavaScript wymaga przestrzegania określonych zasad, które nie zostały spełnione w pozostałych odpowiedziach. Odpowiedź 'licz_pitagoras(a, b);' jest niekompletna, ponieważ pomija przypisanie wyniku do zmiennej. Funkcja może być wywołana, ale bez możliwości dalszego wykorzystania jej wyniku, co ogranicza jej użyteczność. Z kolei 'licz_pitagoras(a, b) = c;' sugeruje, że przypisanie wyniku może być wykonane w odwrotny sposób, co jest niezgodne z zasadami przypisywania wartości w JavaScript. Warto pamiętać, że w tym języku nie możemy przypisywać do wyniku funkcji, gdyż funkcje zwracają wartości, a nie są same w sobie zmiennymi. Natomiast 'licz_pitagoras(a, b, c);' sugeruje, że funkcja oczekuje trzech argumentów, co jest nieprawidłowe, ponieważ funkcja została zdefiniowana do przyjmowania tylko dwóch parametrów. Tego typu błędne założenia mogą prowadzić do frustracji podczas programowania, gdyż przydzielanie niewłaściwych argumentów do funkcji może skutkować błędami runtime. Dobrą praktyką jest zrozumienie definicji funkcji i jej parametrów przed jej wywołaniem, co pozwala na efektywne korzystanie z możliwości oferowanych przez JavaScript.

Pytanie 31

W kodzie JavaScript aby wywołać okno z polem do wprowadzania danych i przyciskami OK i ANULUJ, należy zastosować metodę

A. prompt();
B. alert();
C. confirm();
D. message();
W tym zadaniu wszystko kręci się wokół trzech podstawowych funkcji dialogowych JavaScriptu: alert(), confirm() i prompt(). Bardzo łatwo je ze sobą pomylić, bo wszystkie wywołują okienka przeglądarkowe i na pierwszy rzut oka wyglądają podobnie. Jednak ich przeznaczenie jest inne i warto to sobie raz porządnie poukładać w głowie. alert() służy wyłącznie do wyświetlenia komunikatu. Pokazuje okno z tekstem i jednym przyciskiem OK. Nie ma żadnego pola do wpisywania danych, nie zwraca też żadnej wartości od użytkownika – po prostu informuje. Typowe użycie to komunikaty ostrzegawcze albo bardzo proste debugowanie na początku nauki. Jeśli ktoś wybierze alert() przy pytaniu o wprowadzanie danych, to zwykle dlatego, że kojarzy „okienko w przeglądarce” właśnie z alertem, bo to najczęściej pokazywany przykład. confirm() to trochę inna bajka. To okno z komunikatem i dwoma przyciskami: OK i Anuluj. Ta funkcja zwraca wartość typu boolean: true dla OK, false dla Anuluj. Używa się jej, gdy chcesz zapytać użytkownika o potwierdzenie jakiejś akcji, np. „Czy na pewno chcesz usunąć ten rekord?”. I tu pojawia się częsty błąd: skoro są dwa przyciski, to wielu osobom wydaje się, że to jest dokładnie to, o co chodzi w pytaniu. Brakuje jednak kluczowego elementu – pola tekstowego do wpisania danych. confirm() niczego nie pobiera, jedynie pyta o decyzję tak/nie. Z kolei message() w ogóle nie jest standardową funkcją w JavaScripcie. Jeśli ktoś ją wybierze, to zwykle wynika to z domysłu na zasadzie „brzmi sensownie”. W specyfikacji ECMAScript nie ma takiej wbudowanej metody, więc w normalnym kodzie przeglądarkowym jej użycie zakończy się błędem ReferenceError. Tego typu odpowiedzi uczą, żeby nie zgadywać po nazwie, tylko kojarzyć konkretne funkcje z ich działaniem. Podsumowując, jedyna funkcja, która łączy w sobie pole tekstowe oraz przyciski OK i Anuluj, to prompt(). alert() tylko informuje, confirm() tylko pyta o potwierdzenie, a message() po prostu nie istnieje jako standardowa metoda. Typowy błąd myślowy polega na skupieniu się na samych przyciskach i pominięciu wymogu „pola do wprowadzania danych”, które jest tutaj kluczowe z punktu widzenia logiki języka JavaScript i sposobu komunikacji z użytkownikiem.

Pytanie 32

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

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

Pytanie 33

W języku JavaScript obiekt typu array jest wykorzystywany do przechowywania

A. wielu wartości dowolnego typu.
B. wielu wartości wyłącznie liczbowych.
C. wielu wartości lub funkcji.
D. wielu wartości wyłącznie tekstowych.
Obiekt typu array w języku JavaScript jest strukturą danych, która służy do przechowywania wielu wartości dowolnego typu. Można w nim przechowywać liczby, napisy, obiekty, a nawet inne tablice. Dzięki temu arrays są niezwykle elastyczne i użyteczne w tworzeniu aplikacji. W JavaScript tablice są dynamiczne, co oznacza, że można do nich dodawać nowe elementy w trakcie działania programu za pomocą metod takich jak push() i unshift(). Przykład użycia tablicy: let fruits = ['jabłko', 'banan', 42, {color: 'zielony'}, [1, 2, 3]]; w tym przykładzie tablica fruits przechowuje różne typy danych, w tym napisy, liczbę, obiekt oraz inną tablicę. Warto również zauważyć, że tablice w JavaScript są obiektami, co pozwala na wykorzystanie różnych metod i właściwości typowych dla obiektów. Dokumentacja ECMAScript jasno określa zasady działania tablic, co potwierdza ich funkcjonalność jako kolekcji wartości. Warto zrozumieć, że tablice nie są ograniczone do przechowywania jednego typu danych, co czyni je idealnym narzędziem do zarządzania złożonymi zbiorami informacji.

Pytanie 34

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

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

Pytanie 35

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

A. ciągu znaków
B. wyliczeniowym
C. logicznym
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 36

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

A. string (ciąg znaków)
B. liczbowym
C. nieokreślonym (undefined)
D. logicznym
W języku JavaScript, deklaracja zmiennej za pomocą var x="true"; tworzy zmienną o typie string, co oznacza, że jest to ciąg znaków. Wartość "true" w tym przypadku jest interpretowana dosłownie jako tekst i nie ma związku z wartością logiczną typu boolean, która również może być używana w JavaScript. Typ string jest jednym z podstawowych typów danych w tym języku i jest używany do reprezentowania tekstu. Zmienne typu string mogą zawierać litery, cyfry oraz znaki specjalne i są otaczane cudzysłowami, jak w tym przypadku. W praktyce programiści często używają stringów do przechowywania danych wejściowych od użytkowników, komunikatów oraz wszelkiego rodzaju informacji tekstowych. Warto zauważyć, że w ECMAScript 6 (ES6) wprowadzono również let oraz const do deklaracji zmiennych, ale zasada dotycząca typów danych pozostaje taka sama. Należy także zwrócić uwagę, że typy danych w JavaScript są dynamiczne, co oznacza, że można przypisać różne typy wartości do tej samej zmiennej w różnych momentach. Na przykład, po przypisaniu stringa, możemy przypisać liczbę lub obiekt do tej samej zmiennej, co pokazuje elastyczność JavaScriptu jako języka programowania.

Pytanie 37

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

A. onmousedown
B. onmouseup
C. onmouseover
D. onmouseout
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 38

Jaki jest cel poniższego fragmentu funkcji w JavaScript?

wynik = 0;
for (i = 0; i < tab.length; i++)
{
    wynik += tab[i];
}
A. przypisać do każdego elementu tablicy bieżącą wartość zmiennej i
B. obliczyć sumę wszystkich elementów tablicy
C. wyświetlić wszystkie pozycje w tablicy
D. dodać stałą wartość do każdego elementu tablicy
Podczas analizowania niepoprawnych odpowiedzi warto skupić się na zrozumieniu działania pętli oraz operatora przypisania dodającego +=. Pierwsza z omawianych odpowiedzi sugeruje że kod dodaje do każdego elementu tablicy stałą wartość. Jest to błędne rozumienie operatora += który po lewej stronie ma zmienną a po prawej wartość którą dodajemy do tej zmiennej. W tym przypadku tab[i] jest dodawane do zmiennej wynik co wskazuje na zliczanie a nie modyfikację elementów tablicy. Druga odpowiedź sugeruje że kod wyświetla elementy tablicy. Jednak brak tutaj jakiejkolwiek funkcji wyjściowej takiej jak console.log() która mogłaby wyświetlić wartości w konsoli. Kod skupia się na operacji wewnętrznej a nie na interakcji wyjściowej. Trzecia odpowiedź sugeruje że do każdego elementu tablicy jest wprowadzana aktualna wartość zmiennej i. Jest to również błędne ponieważ nie ma tutaj żadnej operacji przypisania wartości do tablicy. Zmienna i jest jedynie indeksem używanym do iteracji i nie wpływa na zmianę wartości tablicy. Wszystkie te nieporozumienia wynikają z błędnej interpretacji działania pętli oraz operacji arytmetycznych w kodzie. Kluczowe jest zrozumienie jak pętla działa aby poprawnie przypisać operację do odpowiedniego kontekstu w programie.

Pytanie 39

Język JavaScrypt umożliwia obsługę

A. klas abstrakcyjnych
B. wysyłania ciastek z identycznymi informacjami do wielu klientów strony
C. obiektów DOM
D. funkcji wirtualnych
JavaScript to język programowania, który ma silne wsparcie dla obiektów DOM (Document Object Model), co pozwala na dynamiczne manipulowanie strukturą HTML oraz stylami CSS w czasie rzeczywistym. DOM jest interfejsem programowania aplikacji, który reprezentuje strukturę dokumentów HTML oraz XML jako zhierarchizowane drzewo obiektów. Dzięki JavaScript, programiści mogą dodawać, usuwać oraz modyfikować elementy na stronie internetowej, co prowadzi do interaktywnych i responsywnych doświadczeń użytkowników. Na przykład, za pomocą metody document.getElementById() można uzyskać dostęp do konkretnego elementu HTML, a następnie zmienić jego zawartość lub styl. Możliwości manipulacji DOM w JavaScript są szerokie, obejmują takie operacje jak dodawanie klas CSS, obsługa zdarzeń użytkownika, czy tworzenie nowych elementów. Standardy, takie jak W3C DOM, definiują sposób, w jaki te operacje powinny być realizowane, zapewniając interoperacyjność w różnych przeglądarkach. Zrozumienie obsługi DOM w JavaScript jest kluczowe dla każdego, kto chce tworzyć nowoczesne aplikacje internetowe, ponieważ umożliwia pełne wykorzystanie możliwości interakcji na stronach WWW.

Pytanie 40

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

Ilustracja do pytania
A. Imiona['Agata']
B. Imiona[4]
C. Imiona[3]
D. Imiona[Agata]
W przypadku odpowiedzi Imiona[4] jest kilka błędów związanych z tym, jak działają tablice. Wiesz, w JavaScript zaczynamy liczyć od zera, więc pierwszy element ma indeks 0, a ostatni w tablicy o długości n to n-1. Nasza tablica ma pięć imion, więc ostatni element Agata ma indeks 3, a nie 4. Użycie Imiona[Agata] jest po prostu błędne, bo w tablicach musisz dawać liczby jako indeksy, nie tekst. Jak spróbujesz użyć tekstu jako indeksu, to interpreter nie znajdzie tego elementu i wywali błąd. W kontekście Imiona['Agata'] sytuacja jest ta sama, bo tablice przyjmują tylko numery. Wydaje mi się, że mogło być nieporozumienie między tablicami a obiektami, bo tam można używać tekstowych kluczy. Pamiętaj, że poprawne indeksowanie tablicy to bardzo ważna umiejętność w programowaniu, bo dzięki temu zarządzasz danymi i unikasz różnych błędów.