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 kwietnia 2026 21:56
  • Data zakończenia: 21 kwietnia 2026 22:14

Egzamin zdany!

Wynik: 26/40 punktów (65,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 jakim formacie będzie wyświetlana data po uruchomieniu przedstawionego kodu?

<?php
  echo date'l, dS F Y');
?>
A. Poniedziałek, 10th lipca 17
B. Poniedziałek, 10th lipca 2017
C. 10, poniedziałek lipca 2017
D. Poniedziałek, 10 lipca 2017
Przy analizie podanego kodu PHP, kluczowym elementem jest sposób, w jaki funkcja date() interpretuje format daty. W kodzie występuje błąd składniowy, ponieważ użycie funkcji date() powinno być w postaci date('format'). Zakładając, że błąd zostanie naprawiony na date('I, dS F Y'), funkcja ta zwraca datę w określonym formacie. 'I' oznacza pełną nazwę dnia tygodnia, 'dS' to dzień miesiąca z odpowiednim suffix, 'F' to pełna nazwa miesiąca, a 'Y' to rok w formacie czterocyfrowym. Przykładowe wyjście dla daty 10 lipca 2017 roku będzie wyglądać tak: 'Monday, 10th July 2017'. Użycie 'dS' generuje dodatek 'th' dla dni 10, 11 i 12 oraz 'st', 'nd', 'rd' dla innych dni, co jest zgodne z konwencją zapisu dat w języku angielskim. Warto podkreślić, że PHP korzysta z własnej biblioteki do zarządzania datami i czasem, co zapewnia dużą elastyczność w formatowaniu dat. Przykłady zastosowania tej funkcji można znaleźć w dokumentacji PHP, co czyni ją niezbędnym narzędziem w codziennym programowaniu.

Pytanie 2

Pętla w kodzie JavaScript zostanie uruchomiona

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

Pytanie 3

Zapis przedstawiony w języku JavaScript oznacza, że

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

Pytanie 4

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

A. klawiatury będzie zwolniony
B. myszki będzie wciśnięty
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 5

Aby przeprowadzić walidację kontrolek formularza w momencie, gdy użytkownik wprowadza dane, można wykorzystać zdarzenie

A. onClick
B. onFocusOut
C. onKeyDown
D. onLoad
Odpowiedź 'onKeyDown' jest poprawna, ponieważ jest to zdarzenie, które jest wywoływane, gdy użytkownik naciśnie klawisz podczas interakcji z polem formularza. Użycie tego zdarzenia pozwala na walidację danych w czasie rzeczywistym, co oznacza, że programista może natychmiast reagować na wprowadzone znaki. Dzięki temu można na przykład sprawdzić, czy wprowadzone dane spełniają określone kryteria, takie jak format e-maila, długość hasła czy obecność cyfr. Praktyczne zastosowanie zdarzenia onKeyDown polega na tym, że można wprowadzić logikę walidacji bez konieczności czekania na zakończenie wprowadzania danych. Zamiast tego, możemy w realnym czasie informować użytkowników o ewentualnych błędach, co znacznie poprawia doświadczenia użytkowników. Ponadto, zgodnie z dobrymi praktykami, zaleca się używanie zdarzeń związanych z klawiaturą, takich jak onKeyDown czy onInput, które są bardziej odpowiednie dla dynamicznych interakcji niż na przykład onBlur, które może być mniej responsywne. Warto również zauważyć, że onKeyDown działa przed onKeyUp, co umożliwia szybsze reagowanie na wprowadzane dane, co jest kluczowe w kontekście walidacji w czasie rzeczywistym.

Pytanie 6

W kodzie HTML przypisano pewne znaczniki do klasy o nazwie "nomargin". Jak można przeprowadzić operacje na tych znacznikach w języku JavaScript, korzystając z odpowiedniej funkcji?

A. getElementsByTagName("nomargin")
B. getElementById("nomargin")
C. getElement("nomargin")
D. getElementsByClassName("nomargin")
Wybór odpowiedzi 'getElementsByClassName("nomargin")' jest właściwy, ponieważ ta funkcja umożliwia selekcję wszystkich elementów HTML, które mają przypisaną daną klasę. W tym przypadku klasa to 'nomargin'. Funkcja ta zwraca kolekcję elementów, co jest bardzo przydatne w manipulacji DOM, gdyż pozwala na wykonywanie operacji na wielu elementach jednocześnie. Przykładowo, jeśli chcemy usunąć marginesy z wszystkich elementów, które mają tę klasę, możemy wykorzystać zwróconą kolekcję do iteracji i zastosować odpowiednie style CSS. Kod mógłby wyglądać tak: var elements = document.getElementsByClassName('nomargin'); for (var i = 0; i < elements.length; i++) { elements[i].style.margin = '0'; }. Standardy JavaScript oraz DOM odnoszą się do używania tej funkcji jako efektywnej metody nawiązywania interakcji z elementami na stronie. Warto także pamiętać, że getElementsByClassName zwraca „żywą” kolekcję, co oznacza, że zmiany w DOM będą natychmiast widoczne w tej kolekcji.

Pytanie 7

Która z metod wyświetlenia tekstu nie jest określona w języku JavaScript?

A. Metoda document.write()
B. Właściwość innerHTML
C. Funkcja MessageBox()
D. Funkcja window.alert()
Funkcja MessageBox() nie jest zdefiniowana w języku JavaScript, co czyni tę odpowiedź poprawną. W JavaScript do wyświetlania interaktywnych okien dialogowych służy metoda window.alert(), która wyświetla prosty komunikat. Metoda ta przyjmuje jeden argument, który jest tekstem wyświetlanym w oknie alertu. Przykład użycia: window.alert('To jest komunikat');. Kolejną metodą jest document.write(), która umożliwia dynamiczne dodawanie treści do dokumentu HTML. Przykład: document.write('<h1>Witaj w JavaScript!</h1>');. W praktyce, podczas tworzenia interaktywnych aplikacji webowych, wybór metody prezentacji danych powinien być przemyślany, biorąc pod uwagę doświadczenia użytkowników. Warto również stosować standardy dotyczące dostępności, aby zapewnić, że wszyscy użytkownicy, niezależnie od ich umiejętności technicznych, mogą z łatwością korzystać z aplikacji.

Pytanie 8

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

A. zweryfikować poprawność formularza o identyfikatorze id
B. pobrać wartości z formularza i przypisać je do zmiennej id
C. zwrócić referencję do pierwszego elementu HTML o wskazanym id
D. umieścić tekst o treści ’id’ na stronie internetowej
Fajnie, że zwróciłeś uwagę na metodę document.getElementById(id). To naprawdę ważne narzędzie w JavaScript, jeśli chodzi o pracę z DOM. Dzięki niej możesz łatwo znaleźć element HTML, który ma konkretny identyfikator, co jest super przydatne, gdy chcesz coś zmienić na stronie. Na przykład, żeby zmienić tekst nagłówka, używasz: document.getElementById('header').innerText = 'Nowy tekst nagłówka'. Warto pamiętać, żeby identyfikatory były unikalne, bo to potem ułatwia odnajdywanie i manipulację tymi elementami. Unikaj też zbyt ogólnych nazw, bo to może prowadzić do zamieszania. Metoda ta jest naprawdę szeroko stosowana w nowoczesnym programowaniu stron internetowych, co czyni strony bardziej interaktywnymi i dynamicznymi.

Pytanie 9

Przedstawiona funkcja napisana w kodzie JavaScript ma na celu:

function oblicz(a, n)
{
    wynik = 1;
    for(i = 0; i < n; i++)
        wynik *= a;
    return (wynik);
}
A. zwrócić wynik potęgowania a^n
B. wpisać kolejne liczby od a do n
C. zwrócić iloczyn kolejnych liczb od 1 do a
D. wpisać wyniki mnożenia a przez n
Funkcja w kodzie JavaScript przedstawionym w pytaniu ma na celu zwrócenie wyniku potęgowania liczby a do potęgi n. Widzimy to poprzez analizę kodu: rozpoczyna się od inicjalizacji zmiennej wynik z wartością 1, a następnie w pętli for realizowana jest operacja mnożenia wyniku przez a dokładnie n razy. W ten sposób wynik = wynik * a jest wykonywane iteracyjnie, co oznacza że a jest mnożone przez siebie n razy. Taka operacja jest definicją potęgowania: a do potęgi n oznacza a mnożone n-krotnie. Tego rodzaju funkcje są fundamentalne w programowaniu, szczególnie w kontekście matematycznych obliczeń czy symulacji wymagających wielokrotnych potęgowań, np. w zastosowaniach naukowych i inżynieryjnych. Dobrą praktyką jest również optymalizacja tego typu funkcji używając wbudowanych metod jak Math.pow w JavaScript, co zwiększa czytelność i efektywność kodu. Rozumienie potęgowania jest kluczowe w algorytmach opartych na teorii liczb, kryptografii czy w grafice komputerowej, gdzie operacje te mogą być wysoce złożone i wymagają szczególnej optymalizacji.

Pytanie 10

Kod został napisany w języku JavaScript. W podanej definicji obiektu metodą jest element o nazwie.

var obj1 = {
  czescUlamkowa: 10,
  czescCalkowita: 20,
  oblicz: function() {.....}
}
A. czescUlamkowa
B. obj1
C. czescCalkowita
D. oblicz
W podanym kodzie JavaScript obiekt obj1 zawiera trzy elementy czescUlamkowa czescCalkowita i oblicz Istotnym aspektem definicji obiektów w JavaScript jest możliwość definiowania metod czyli funkcji będących częścią obiektu W podanym obiekcie metoda oblicz zdefiniowana jest jako funkcja przypisana do klucza o tej samej nazwie To właśnie odróżnia metodę od zwykłych właściwości obiektu czyli czescUlamkowa i czescCalkowita które są wartościami liczbowymi Metody w JavaScript są wykorzystywane do wykonywania operacji wewnątrz obiektu co pozwala na manipulację jego danymi i zachowaniami Przykładowo metoda oblicz może służyć do kalkulacji bazującej na innych właściwościach obiektu takich jak czescUlamkowa i czescCalkowita Definiując metody w obiektach uzyskujemy spójność i enkapsulację dzięki czemu obiekt może sam zarządzać swoimi danymi i operacjami Rozumienie metod w kontekście obiektów jest kluczowe zwłaszcza w paradygmacie programowania obiektowego gdzie obiekty mogą posiadać zarówno dane jak i funkcjonalności związane z tymi danymi

Pytanie 11

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

A. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
B. wyłącznie w sekcji <body>, w znaczniku <java>
C. tak w sekcji <head>, jak i <body>, w znaczniku <java>
D. jedynie w sekcji <head>, w znaczniku <script>
Wiesz, wstawianie kodu JavaScript do dokumentu HTML powinno odbywać się w znaczniku <script>. Możesz go umieścić zarówno w <head>, jak i w <body>. Często wrzucamy skrypty do <head>, bo chcemy, żeby załadowały się przed wyświetleniem treści. To się przydaje, gdy skrypty zmieniają coś w DOM. Z drugiej strony, jak wrzucisz je do <body>, to skrypty będą ładowane po całej treści, co może przyspieszyć to, co widzi użytkownik. Na przykład, jeśli tworzysz coś interaktywnego, lepiej umieścić skrypty na dole, żeby nie blokować renderowania. Dobrze jest też pamiętać o atrybucie 'defer' w <script>, bo dzięki temu skrypt się ściąga równolegle z innymi rzeczami, ale działa dopiero jak cały dokument jest załadowany. To ważne, żeby strony działały sprawnie i były przyjemne w użytkowaniu.

Pytanie 12

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

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

Pytanie 13

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. wodzenia
C. wo
D. owodzeni
W przedstawionym kodzie JavaScript użyto funkcji substring aby wyodrębnić fragmenty tekstu z ciągu znaków. Początkowa zmienna x zawiera tekst Powodzenia na egzaminie. Pierwsza funkcja x.substring(3,9) zwraca fragment tekstu zaczynający się od indeksu 3 do 8 włącznie co daje fragment wodzen. Wartość ta jest przypisana do zmiennej z. Następnie funkcja z.substring(2,4) wyodrębnia fragment zaczynający się od indeksu 2 do 3 włącznie z tego nowego ciągu wodzen co daje rezultat ze. Wynik ten zostanie wypisany na ekranie przez document.write(y). Praktyczne zastosowanie metody substring polega na manipulacji tekstem co jest powszechne w web development np. do parsowania danych tekstowych lub przygotowania tekstu do wyświetlenia. Dobre praktyki obejmują użycie substring do przetwarzania danych wejściowych np. w formularzach czy przekształcanie danych użytkownika. Ważne jest zrozumienie indeksowania od zera oraz poprawne określenie zakresu aby uniknąć błędów logicznych w kodzie. W kontekście substringu warto pamiętać że drugi parametr jest ekskluzywny co oznacza że nie jest uwzględniany w wyniku. Takie detale są kluczowe dla programistów aby efektywnie zarządzać danymi tekstowymi w różnorodnych zastosowaniach.

Pytanie 14

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

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
B. Przed instrukcją else nie powinno być średnika
C. Zmienne zostały błędnie zadeklarowane
D. W instrukcji if znajduje się przypisanie zamiast operacji porównania
W tym przypadku mamy do czynienia z częstym błędem w programowaniu, gdzie zamiast porównania użyto operatora przypisania. W języku JavaScript operator przypisania '=' służy do przypisywania wartości do zmiennej, natomiast do porównania dwóch wartości używa się operatora '==' dla równości lub '===' dla równości i sprawdzania typu. Użycie '=' w warunku if powoduje przypisanie wartości y do x, co zawsze zwróci true, jeśli y jest różne od zera. To prowadzi do nieoczekiwanych rezultatów w logice programu. Poprawnym zapisem w tym kontekście jest if (x == y). Warto pamiętać o dobrych praktykach, które zalecają używanie '===' zamiast '==' dla uzyskania lepszej precyzji i uniknięcia błędów spowodowanych niejawnych konwersji typów. To podejście minimalizuje ryzyko błędów logicznych i poprawia czytelność kodu. Regularne stosowanie takich dobrych praktyk zwiększa jakość kodu i ułatwia jego późniejszą konserwację oraz rozwój.

Pytanie 15

W języku Javascript obiekt typu array służy do przechowywania

A. wielu wartości tylko tekstowych
B. wielu wartości różnego rodzaju
C. wielu wartości tylko liczbowych
D. wielu wartości lub funkcji
Obiekt typu array w języku JavaScript jest niezwykle elastycznym narzędziem, które pozwala na przechowywanie wielu wartości dowolnego typu. Arrays mogą zawierać liczby, stringi, obiekty, a nawet inne tablice, w ramach jednego zbioru. Taka struktura danych jest bardzo przydatna w programowaniu, szczególnie w kontekście pracy z danymi, gdyż umożliwia tworzenie kolekcji o zmiennej długości, które można łatwo przetwarzać. Na przykład, w aplikacjach webowych można wykorzystać tablice do grupowania danych z formularzy lub przechowywania wyników zapytań do bazy danych. Dzięki metody takim jak .push(), .pop() czy .map(), programiści mogą łatwo manipulować danymi w tablicach. Ważnym aspektem jest również to, że tablice są obiektami w JavaScript, co oznacza, że można do nich przypisywać dodatkowe właściwości i metody, zwiększając ich funkcjonalność. Przykładem zaawansowanego zastosowania tablic jest wykorzystanie ich do implementacji algorytmów, takich jak sortowanie czy przeszukiwanie danych. Zgodnie z dokumentacją MDN, tablice w JavaScript są dynamiczne, co oznacza, że ich rozmiar może być dostosowywany w czasie działania programu, co czyni je bardzo wszechstronnym narzędziem w pracy programisty.

Pytanie 16

W języku JavaScript funkcja getElementById odnosi się do

A. klasy zdefiniowanej w CSS
B. elementu HTML z określoną nazwą klasy
C. elementu HTML z podanym id
D. zmiennej numerycznej
Metoda getElementById w języku JavaScript jest kluczowym narzędziem do manipulacji DOM (Document Object Model), które pozwala deweloperom na łatwe odwoływanie się do konkretnych elementów HTML za pomocą ich atrybutu id. Dzięki temu, możemy dynamicznie zmieniać treść, style lub atrybuty tych elementów, co jest niezwykle przydatne w tworzeniu interaktywnych stron internetowych. Na przykład, jeśli mamy element HTML z atrybutem id='header', możemy użyć `document.getElementById('header')` do uzyskania do niego dostępu. To podejście jest zgodne z zasadami poprawnej struktury HTML, gdzie atrybut id powinien być unikalny w obrębie dokumentu. Rekomendowane jest, aby id było zrozumiałe i jasno określało zawartość elementu, co ułatwia późniejszą nawigację i skrypty, a także poprawia dostępność strony. W praktyce, korzystając z getElementById, możemy na przykład zmieniać tekst nagłówka: `document.getElementById('header').innerText = 'Nowy nagłówek';`.

Pytanie 17

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

var str1 = "JavaScript"; var str2 = str1.substring(2, 6);
A. avaS
B. vaScri
C. vaSc
D. avaScr
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 18

Dla dowolnego a z przedziału (0, 99) zadaniem funkcji zapisanej w języku JavaScript jest

function fun1(a)
{
    for (n = a; n <= 100; n++)
        document.write(n);
    return n;
}
A. wypisanie liczb z przedziału a .. 99 i zwrócenie wartości 100
B. wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n
C. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
D. zwrócenie liczb z przedziału a .. 99
Twoja odpowiedź jest poprawna. Funkcja fun1(a) w języku JavaScript przyjmuje argument a i za pomocą pętli for wypisuje liczby od a do 100 włącznie - a więc pętla jest iterowana tyle razy, ile wynosi różnica między 100 a wartością argumentu a. Po każdej iteracji pętli, wartość zmiennej n jest zwiększana o 1, co jest typowym zachowaniem dla pętli for w JavaScript. Funkcja zwraca wartość zmiennej n po zakończeniu pętli. Tak więc funkcja zwraca 101, ponieważ to właśnie wartość o 1 większa niż warunek kończący pętlę (100) spowoduje jej zakończenie. Ta funkcja to przykładowe zastosowanie pętli for w JavaScript, pokazujące praktyczne zastosowanie tego elementu składni. Pętla for jest standardem w branży i jest powszechnie stosowana do iterowania przez elementy tablicy, obiekty, liczby i inne struktury danych.

Pytanie 19

Rodzaj zmiennej w języku JavaScript

A. istnieje tylko jeden
B. następuje poprzez przypisanie wartości
C. powinien być zadeklarowany na początku skryptu
D. nie występuje
W języku JavaScript typ zmiennej jest określany poprzez przypisanie wartości, co oznacza, że zmienna może przyjmować różne typy danych w trakcie działania programu. JavaScript jest językiem, który wspiera dynamiczne typowanie, co pozwala na elastyczność w programowaniu. Przykładowo, można zadeklarować zmienną i przypisać do niej wartość liczbową: let x = 5; a następnie przypisać wartość tekstową: x = 'Hello';. W momencie przypisania wartości, JavaScript automatycznie dostosowuje typ zmiennej w zależności od typu przypisanej wartości. To podejście jest zgodne z dobrymi praktykami programowania, ponieważ umożliwia łatwe tworzenie i modyfikowanie kodu, bez potrzeby wcześniejszego określania typów zmiennych, co jest charakterystyczne dla języków statycznie typowanych. Warto również zaznaczyć, że w JavaScript mamy do czynienia z różnymi typami danych, takimi jak liczby, łańcuchy tekstowe, obiekty, tablice czy wartości logiczne (boolean), co daje programistom dużą swobodę w modelowaniu danych.

Pytanie 20

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

var n, i;
var a = 1;

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

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

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

Pytanie 21

W języku JavaScript, by zmodyfikować wartość atrybutu elementu HTML, po uzyskaniu obiektu za pomocą metody getElementById należy użyć

A. pola attribute oraz wskazać nazwę atrybutu
B. metody setAttribute
C. metody getAttribute
D. pola innerHTML
Metoda setAttribute w JavaScript jest kluczowym narzędziem do zmiany wartości atrybutów elementów HTML. Po uzyskaniu dostępu do elementu za pomocą getElementById, zastosowanie setAttribute pozwala nie tylko na modyfikację istniejących atrybutów, ale także na dodawanie nowych, co jest istotne w dynamicznym zarządzaniu dokumentem HTML. Przykładowo, jeśli mamy element <img id='myImage' src='oldImage.png'>, możemy zmienić źródło obrazu na nowy plik, używając kodu: document.getElementById('myImage').setAttribute('src', 'newImage.png'). Warto pamiętać, że setAttribute przyjmuje dwa argumenty: nazwę atrybutu oraz nową wartość. Zgodnie z najlepszymi praktykami, zawsze warto upewnić się, że element istnieje przed próbą zmiany jego atrybutów, co można osiągnąć poprzez sprawdzenie, czy zwrócony obiekt nie jest nullem. Dzięki temu kod staje się bardziej odporny na błędy i bezpieczniejszy.

Pytanie 22

Fragment skryptu w języku JavaScript umieszczony w ramce

t = "Ala ma kota.";
s = t.length;
A. przypisze zmiennej s długość tekstu z zmiennej t
B. przypisze zmiennej s zmienną t
C. przypisze zmiennej s część tekstu z zmiennej t, o długości określonej przez zmienną length
D. wyświetli długość tekstu z zmiennej t
W podanym kodzie zmiennej t przypisano wartość ciągu znaków Ala ma kota.. Następnie zmiennej s przypisano wynik wywołania właściwości length na zmiennej t. W JavaScript length jest właściwością obiektów String używaną do określenia długości łańcucha znaków czyli liczby znaków w napisie. W tym przypadku t.length zwróci liczbę 12 ponieważ włącznie ze spacjami i kropką ciąg Ala ma kota. składa się z 12 znaków. Przypisanie tego wyniku do zmiennej s oznacza że s będzie miało wartość 12. Takie wykorzystanie właściwości length jest zgodne z dobrymi praktykami i często stosowane w programowaniu w JavaScript. Pozwala na dynamiczne określanie długości łańcuchów co jest przydatne przy przetwarzaniu danych tekstowych. Umiejętność manipulacji łańcuchami znaków jest kluczowa w tworzeniu aplikacji webowych i skryptów które muszą obsługiwać dane użytkowników. Prawidłowe zrozumienie jak działa właściwość length pozwala na efektywne zarządzanie i przetwarzanie tekstu co jest istotne w pracy każdego programisty.

Pytanie 23

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. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
D. wyłącznie w sekcji <head>, 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 24

W instrukcji warunkowej w JavaScript powinno się zweryfikować sytuację, w której zmienne a oraz b są większe od zera, przy czym zmienna b jest mniejsza od 100. Taki warunek należy zapisać w następujący sposób:

A. if ( a > 0 || (b > 0 && b < 100))
B. if ( a > 0 || b > 0 || b > 100)
C. if ( a > 0 && b > 0 || b > 100)
D. if ( a > 0 && b > 0 && b < 100)
W analizowanych odpowiedziach pojawia się kilka koncepcji, które nie spełniają wymagań dotyczących sprawdzenia warunków dla zmiennych a i b. Odpowiedź if ( a > 0 || b > 0 || b > 100) jest błędna, ponieważ użycie operatora OR (||) wskazuje, że wystarczy, aby przynajmniej jeden z warunków był spełniony. Taki zapis wpłynąłby na logikę programu, prowadząc do sytuacji, w której program uznałby, że warunki są spełnione, nawet jeśli b jest większe lub równe 100, co całkowicie ignoruje kluczowy wymóg dotyczący tej zmiennej. W drugiej analizowanej opcji, if ( a > 0 && b > 0 || b > 100), znowu mamy do czynienia z niewłaściwym połączeniem operatorów, które może prowadzić do błędnych wyników. Tu z kolei program będzie mógł uznać warunek za prawdziwy, jeśli b przekroczy 100, nawet jeżeli a i b nie są dodatnie, co narusza zasady logicznego myślenia. Argumenty w if ( a > 0 || (b > 0 && b < 100)) również nie są zgodne z wymaganiami, ponieważ zastosowanie operatora OR sprawia, że program uzna warunek za prawdziwy, jeżeli tylko a jest dodatnie, co nie jest zgodne z zasadą, że obie zmienne powinny spełniać warunki. Przykładowo, w kontekście aplikacji bankowej, takie niepoprawne sprawdzenie mogłoby prowadzić do nieautoryzowanych transakcji, co byłoby poważnym zagrożeniem dla bezpieczeństwa użytkowników.

Pytanie 25

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

var x = 10;
switch(x) {
    case "10": alert("Test instrukcji switch");
}
A. Nie zastosowano wyrażenia default.
B. Nie zastosowano instrukcji break.
C. Wartość zmiennej x nie została zdefiniowana przed instrukcją switch.
D. W instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x.
Prawda jest taka, że zastosowanie wyrażenia default, definicja zmiennej x przed instrukcją switch oraz użycie instrukcji break nie wpływają na wyświetlenie alertu w omawianym kodzie JavaScript. Wyrażenie default w instrukcji switch służy jako gwarancja wykonania bloku kodu, gdy żaden z przypadków nie pasuje do wyrażenia switch, ale jego brak nie jest przyczyną niepojawienia się alertu. Co więcej, zmienna x jest zdefiniowana przed instrukcją switch, co jest zgodne z zasadami JavaScript. Instrukcja break służy do zakończenia pętli lub instrukcji switch i przeniesienia wykonania do następnej instrukcji po instrukcji switch lub pętli, ale nie ma ona wpływu na porównanie typów danych w instrukcji case. Rzeczywistym powodem, dla którego alert nie jest wyświetlany, jest fakt, że JavaScript używa tzw. 'strict comparison' w instrukcji case, porównując zarówno wartość, jak i typ danych, a typy danych liczby 10 i ciągu znaków '10' są różne. Dlatego jest istotne, ażeby zawsze zwracać uwagę na typy danych podczas korzystania z instrukcji switch i case w JavaScript.

Pytanie 26

W języku JavaScript wartość typu boolean może być przedstawiana przez

A. true
B. 45.3
C. –20
D. null
Wartości -20, 45.3 oraz null nie są reprezentacjami typu boolean w JavaScript i nie mogą być używane jako odpowiedzi na pytanie o typ logiczny. Zaczynając od -20, należy zauważyć, że w JavaScript jest to wartość liczbowa, a liczby są traktowane jako 'truthy', co oznacza, że w kontekście warunkowym zostaną zinterpretowane jako true. Niemniej jednak, sama liczba -20 nie jest bezpośrednio równoważna z true, co czyni ją niewłaściwą odpowiedzią na to pytanie. Przechodząc do 45.3, również jest to liczba zmiennoprzecinkowa. Podobnie jak w przypadku -20, liczby różne od zera, w tym 45.3, także są interpretowane jako 'truthy'. Jednak, jako liczba, nie spełnia ona definicji wartości boolean, co czyni ją nieodpowiednią odpowiedzią w kontekście pytania. Z kolei null to wartość specjalna w JavaScript, która reprezentuje brak jakiejkolwiek wartości. Chociaż null jest interpretowane jako 'falsy' w kontekście boolean, to nie jest to wartość logiczna sama w sobie. Dlatego, wszystkie te odpowiedzi, mimo że mogą w pewnych okolicznościach być interpretowane w kontekście boolean, nie odpowiadają na pytanie o typ boolean i jego reprezentację w JavaScript.

Pytanie 27

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

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

Pytanie 28

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. c = licz_pitagoras(a, b);
C. licz_pitagoras(a, b) = c;
D. 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 29

W języku JavaScript zapis w ramce oznacza, że x=przedmiot.nazwa);

A. nazwa jest cechą obiektu przedmiot
B. zmienna x będzie zawierać wynik działania metody nazwa
C. zmienna x będzie przechowywać wynik działania funkcji przedmiot
D. nazwa jest atrybutem klasy przedmiot
W języku JavaScript zapis 'x = przedmiot.nazwa;' oznacza, że zmienna 'x' będzie przechowywać wartość, która jest wynikiem działania metody lub właściwości 'nazwa' obiektu 'przedmiot'. W JavaScript obiekty mogą mieć zdefiniowane metody oraz właściwości. Jeśli 'nazwa' jest funkcją (metodą) zdefiniowaną w obiekcie 'przedmiot', to jej wywołanie spowoduje, że wynik tego działania zostanie przypisany do zmiennej 'x'. Ważne jest, aby w kontekście obiektów JavaScript rozumieć różnicę między metodą a właściwością. Metody to funkcje, które są dołączone do obiektu, podczas gdy właściwości to wartości skojarzone z obiektem. Przykład zastosowania może wyglądać tak: wyobraźmy sobie obiekt 'przedmiot' reprezentujący książkę, który ma metodę 'nazwa', zwracającą tytuł książki. Jeśli wywołamy 'x = przedmiot.nazwa();', to 'x' przechowa tytuł książki. To podejście pozwala na dynamiczne operowanie danymi w obiektach, co jest kluczowe w programowaniu obiektowym. Zdefiniowanie metody 'nazwa' w obiekcie jest zgodne z zasadami programowania obiektowego w JavaScript, a także spełnia standardy ECMAScript.

Pytanie 30

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

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

Pytanie 31

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

A. zadeklarowanie zmiennej napis1 oraz wywołanie funkcji, w której argumentem jest napis1
B. wywołanie metody dla obiektu napisy
C. stworzenie instancji obiektu napis1 klasy napisy
D. stworzenie nowej klasy napis1
Pierwsza z niepoprawnych odpowiedzi sugeruje, że kod tworzy nową klasę 'napis1', co jest błędem. W rzeczywistości, w JavaScript klasy są definiowane za pomocą słowa kluczowego 'class', a 'new napisy()' uruchamia konstruktor, a nie definiuje klasę. Klasy w JavaScript można zdefiniować w następujący sposób: 'class napisy { constructor() { this.text = ''; }}', co wyraźnie różni się od podanego przykładu. Kolejna odpowiedź mówi o wywołaniu metody obiektu 'napisy', co również jest mylące, ponieważ aby wywołać metodę, obiekt musi być już stworzony, a 'new napisy()' nie wywołuje metody, lecz tworzy instancję obiektu. Ostatnia z odpowiedzi wskazuje na zadeklarowanie zmiennej 'napis1' i wywołanie funkcji z argumentem 'napis1', co jest całkowicie niezgodne z intencją podanego kodu. Nie ma tu żadnego wywołania funkcji z argumentem, a 'new' jest używane do instancjonowania klasy, co nie ma nic wspólnego z przekazywaniem argumentów do funkcji. Tak więc, wszystkie te odpowiedzi nie oddają prawidłowego zrozumienia działania konstrukcji obiektowych w JavaScript.

Pytanie 32

Który fragment kodu stanowi zamiennik dla kodu umieszczonego w ramce?

Ilustracja do pytania
A. D
B. A
C. C
D. B
Odpowiedzi B i D są nieprawidłowe ponieważ ignorują kluczową część logiki oryginalnego kodu mianowicie filtrację parzystych liczb. Odpowiedź B iteruje przez wszystkie liczby od 1 do 55 wypisując je wszystkie bez wyjątku co diametralnie odbiega od zamierzonego wyniku kodu źródłowego. Odpowiedź D jest identyczna z B z tym że format zapisu jest nieco odmienny nie ma to jednak wpływu na logikę działania co czyni ją również błędną. Odpowiedź C inicjuje pętlę od 2 i inkrementuje x o 2 co teoretycznie powinno zbliżyć się do rozwiązania jednak zakres iteracji kończy się na 56 co wykracza poza zadany limit 55 oraz wypisuje nieistniejącą w oryginalnej pętli dodatkową liczbę co jest błędne. Wybory te mogą wynikać z niewłaściwego zrozumienia zakresu pętli lub metody przeskakiwania wartości co jest częstym błędem przy interpretacji pętli iteracyjnych. Kluczowe jest zrozumienie jak zastosowana logika i zakres wpływają na wynik końcowy oraz jak można optymalnie odwzorować te zasady w alternatywnym kodzie.

Pytanie 33

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. zwrócenie wartości liczb parzystych od a do b
B. wypisanie liczb parzystych z zakresu od a do b
C. wypisanie wszystkich liczb 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 34

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

var str1 = "JavaScript";
var str2 = str1.substring(2,6);
A. avaS
B. nvaScr
C. vaSc
D. vaScri
W przypadku analizy kodu JavaScript kluczowym aspektem jest zrozumienie działania metody substring która służy do wyodrębniania fragmentów łańcuchów znaków. Metoda przyjmuje dwa parametry: indeks początkowy oraz opcjonalny indeks końcowy. W kontekście pytania błędnym podejściem jest niedokładna interpretacja tych indeksów. Pierwsza niepoprawna odpowiedź avaS zakłada że wyodrębniane są znaki od 0 do 3 co jest niezgodne z podanymi indeksami 2 i 6. Druga odpowiedź vaScri zakłada że metoda substring obejmuje znaki aż do indeksu 6 włącznie co jest błędnym zrozumieniem zakresu działania tej metody. Metoda substring kończy wybieranie na znaku poprzedzającym indeks końcowy dlatego indeks 6 nie jest uwzględniany przy wyborze znaków. Kolejna niepoprawna odpowiedź nvaScr próbuje wybrać znaki rozpoczynając od indeksu 1 co jest błędnym startowym punktem dla zakresu 2 do 6. W kontekście dobrych praktyk programistycznych istotnym jest zrozumienie że indeksowanie od zera ma wpływ na rezultaty metod operujących na łańcuchach znaków. Częstym błędem początkujących programistów jest nieuwzględnienie tego faktu co prowadzi do niepoprawnych wyników i błędów logicznych w aplikacjach. Znajomość tych zasad pozwala efektywnie wykorzystywać możliwości języka JavaScript w codziennej pracy programistycznej.

Pytanie 35

Który język programowania powinien być wykorzystany do stworzenia skryptu działającego po stronie klienta w przeglądarce internetowej?

A. PHP
B. Perl
C. Python
D. JavaScript
Perl, PHP i Python to języki programowania, które nie są przeznaczone do wykonywania skryptów po stronie klienta w przeglądarkach internetowych. Perl jest przede wszystkim używany jako język skryptowy po stronie serwera, idealny do przetwarzania tekstu i automatyzacji zadań systemowych, ale nie ma zastosowania w kontekście interakcji z użytkownikiem bezpośrednio w przeglądarkach. PHP to język skryptowy stworzony do generowania dynamicznych treści po stronie serwera, co oznacza, że jego skrypty są wykonywane na serwerze przed wysłaniem danych do przeglądarki, co ogranicza jego zdolność do reagowania na akcje użytkownika w czasie rzeczywistym. Python z kolei jest wszechstronnym językiem programowania, który zyskuje na popularności w różnych dziedzinach, jednak jego tradycyjne zastosowanie skupia się na backendzie oraz automatyzacji procesów, a nie na skryptach wykonywanych w przeglądarkach. Choć istnieją frameworki pozwalające na używanie Pythona w aplikacjach webowych (np. Brython), nie są one standardem, a ich wsparcie w przeglądarkach jest ograniczone. W związku z tym, żadna z wymienionych odpowiedzi nie może być uznana za poprawną w kontekście skryptów działających po stronie klienta.

Pytanie 36

Które z pojęć programowania obiektowego w języku JavaScript odnosi się do dostępu do pól i metod jedynie z poziomu klasy, w której zostały one zadeklarowane?

A. static
B. const
C. private
D. public
Użycie słowa kluczowego 'const' w języku JavaScript odnosi się do deklaracji stałych, a nie do poziomu dostępu do pól i metod w klasach. 'const' pozwala na tworzenie zmiennych, których wartości nie mogą być zmieniane, co może prowadzić do nieporozumień w kontekście obiektowości. W rzeczywistości stałe są dostępne w zasięgu bloku, w którym zostały zadeklarowane, co nie ma związku z dostępem do pól i metod klas. Z kolei 'public' to słowo kluczowe, które oznacza, że pola i metody są dostępne z zewnątrz klasy, co stoi w kontraście do prywatnych elementów. Często programiści mylą te dwa podejścia, co prowadzi do błędów w projektowaniu systemów, które wymagają ukrycia implementacji. Dodatkowo, 'static' odnosi się do pól i metod, które są powiązane z klasą, a nie z instancją obiektu. Oznacza to, że takie elementy można wywoływać bez tworzenia instancji klasy. Jest to przydatne w sytuacjach, gdy nie zachodzi potrzeba operowania na danych instancji. Przy wyborze odpowiednich słów kluczowych kluczowe jest zrozumienie ich roli w kontekście obiektowym oraz ich wpływu na architekturę systemu. Dlatego warto przywiązywać wagę do technicznych niuansów, aby unikać typowych pułapek związanych z dostępem do danych.

Pytanie 37

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

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

Pytanie 38

Co należy zrobić przed rozpoczęciem pętli, by zapewnić poprawne działanie przedstawionego kodu JavaScript?

var text;
for( var i = 0; i < tab.length; i++){
    text += tab[i] + "<br>";
}
A. Zainicjować zmienną text
B. Sprawdzić rozmiar tabeli tab
C. Zadeklarować zmienną i
D. Zweryfikować, czy text ma typ string
Deklaracja zmiennej i jest już zawarta w nagłówku pętli for co czyni ją poprawną konstrukcją w kontekście iteracyjnego dostępu do elementów tablicy. Sprawdzanie typu zmiennej text przed pętlą mogłoby mieć znaczenie jedynie w szczególnych przypadkach gdyby istniała niepewność co do rodzaju danych z jakimi program ma do czynienia jednak w kontekście zadania najistotniejsze jest zapewnienie że zmienna ta jest zainicjowana. Rozmiar tablicy tab jest sprawdzany w warunku pętli for co stanowi standardową praktykę w celu uniknięcia przekroczenia granic tablicy lecz operacja ta nie ma wpływu na poprawność działania zmiennej text i jej przetwarzanie w pętli. Typowe błędy myślowe w zakresie inicjalizacji zmiennych to pomijanie tego kroku z założeniem że zmienne są automatycznie ustawiane na wartość domyślną co w przypadku JavaScript jest mylące podobnie jak błędne założenie że deklaracja zmiennej i jest opcjonalna przy iteracjach co prowadzi do trudno wykrywalnych błędów w dużych kodach. Kluczowym wnioskiem jest zrozumienie że inicjalizacja zmiennej jest fundamentem poprawnej i bezpiecznej obsługi danych w cyklu programistycznym.

Pytanie 39

Fragment kodu powyżej został napisany w języku JavaScript. Co należy umieścić w miejsce kropek, aby program przypisywał wartość 1 co trzeciemu elementowi w tablicy?

for (i = 0; i < T.length; ...)
{
    T[i] = 1;
}
A. i =+ 3
B. i = 3
C. i += 3
D. i ++ 3
Prawidłowa odpowiedź to i += 3 ponieważ w języku JavaScript operator += służy do zwiększania wartości zmiennej o zadany krok. W kontekście pętli for oznacza to że po każdej iteracji zmienna i zostanie zwiększona o 3 co pozwala na przypisanie wartości 1 co trzeciemu elementowi w tablicy. Jest to standardowa praktyka przy iteracji co kilka elementów w tablicy. Użycie += jest preferowane ze względu na jego zwięzłość i czytelność co jest zgodne z dobrymi praktykami programistycznymi. W przypadku tablicy T użycie poprawnego inkrementu i += 3 umożliwi przypisanie wartości tylko do tych elementów które są indeksowane przez wielokrotności liczby 3. Dzięki temu kod jest bardziej czytelny i zgodny z zasadami DRY (Don't Repeat Yourself) pozwalając na efektywne operacje na strukturach danych. Przykładowo jeśli mamy tablicę o długości 9 to po wykonaniu pętli elementy o indeksach 0 3 i 6 zostaną ustawione na wartość 1 co pozwala na efektywne zarządzanie pamięcią i czasem obliczeniowym. Tego typu konstrukcje są podstawą wielu algorytmów iteracyjnych.

Pytanie 40

Dla dowolnego a w zakresie (0,99), celem funkcji napisanej w JavaScript jest:

function fun1(a)
{
    for(n=a; n<=100; n++)
        document.write(n);
    return n;
}
A. wypisanie wartości z zakresu a..99 i zwrócenie liczby 100
B. wypisanie wartości z zakresu a...100 i zwrócenie wartości zmiennej n
C. zwrócenie wartości z zakresu a..99
D. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
Odpowiedź numer trzy jest poprawna ponieważ kod funkcji w języku JavaScript zawiera pętlę for która iteruje od wartości a aż do 100 włącznie. W każdym przebiegu pętli wywoływana jest metoda document.write która wypisuje na ekranie bieżącą wartość zmiennej n. Ponieważ pętla kończy się na 100, ostatnia wartość która zostanie wypisana to 100. Dodatkowo zauważmy że po zakończeniu pętli funkcja zwraca wartość zmiennej n, która po zakończeniu pętli będzie równa 101. Jest to typowy wzorzec używany w JavaScript gdzie pętla jest wykorzystywana do iteracji po zbiorze wartości a po jej zakończeniu zwracana jest ostatnia wartość zmiennej sterującej. Praktyczne zastosowanie tej wiedzy obejmuje rozumienie podstawowych mechanizmów iteracji w JavaScript co jest kluczowe w programowaniu. Dobre praktyki wskazują na wyraźne rozdzielenie logiki wyświetlania od logiki zwracania wartości co ułatwia testowanie i utrzymanie kodu. Zwracanie wartości po pętli może być używane w sytuacjach gdy chcemy uzyskać informację o stanie końcowym iteracji co jest częstym scenariuszem w obliczeniach arytmetycznych lub przetwarzaniu danych.