Wyniki egzaminu

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

Egzamin niezdany

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

Wymagane minimum: 20 punktów (50%)

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

Skrypt w języku JavaScript, który zajmuje się płacami pracowników, ma na celu stworzenie raportu dla osób zatrudnionych na umowę o pracę, które otrzymują wynagrodzenie w przedziale 4000 do 4500 zł, w tym przedziale obustronnie domkniętym. Jakie jest kryterium do wygenerowania raportu?

A. umowa == 'praca' || (pensja >= 4000 && pensja <= 4500)
B. umowa == 'praca' && (pensja >= 4000 && pensja <= 4500)
C. umowa == 'praca' && (pensja >= 4000 || pensja <= 4500)
D. umowa == 'praca' || (pensja >= 4000 || pensja <= 4500)
Odpowiedź, którą wybrałeś, to umowa == 'praca' && (pensja >= 4000 && pensja <= 4500). To jest faktycznie odpowiednia opcja, bo spełnia warunki do wygenerowania raportu. To ważne, żeby oba warunki były spełnione – pracownik musi mieć umowę o pracę i pensja powinna być w zakresie od 4000 do 4500 zł. Na przykład, jeśli ktoś zarabia 4200 zł, to wtedy wszystko gra i raport się pojawi. W programowaniu używanie operatorów logicznych, takich jak '&&', jest kluczowe, bo pozwalają one precyzyjnie ustalić kryteria. Dobrze zrozumiane operatory '&&' i '||' pomagają unikać niejasności i błędów w logice, a to jest podstawa dobrego pisania kodu.

Pytanie 2

W języku JavaScript funkcja getElementById odnosi się do

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

Pytanie 3

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

A. zwrócić wartość przeciwną do f
B. wypisać wartość przeciwną do f
C. wypisać wartość bezwzględną z f
D. zwrócić wartość bezwzględną z f
Poprawna odpowiedź to „zwrócić wartość bezwzględną z f”. Funkcja absValue(f) korzysta z wbudowanej metody Math.abs(), która zwraca wartość bezwzględną liczby przekazanej jako argument. Oznacza to, że jeśli liczba f jest ujemna, zostanie zamieniona na dodatnią, a jeśli dodatnia — pozostanie bez zmian. Funkcja nie wypisuje wartości, lecz zwraca wynik, który można następnie wykorzystać w dalszych obliczeniach. Takie podejście jest często stosowane w programowaniu, gdy chcemy operować na wielkościach zawsze nieujemnych, np. przy obliczaniu różnic, odległości lub w analizie danych numerycznych.

Pytanie 4

Dla dowolnego a z zakresu (0,99) celem funkcji napisanej w języku JavaScript jest
function fun(a)
 {
    for(n=a; n <=100; n++)
    document.write(n);
    return(n);
 }

A. zwrócenie liczb z zakresu a .. 99
B. wypisanie liczb z zakresu a .. 100 oraz zwrócenie wartości zmiennej n
C. wypisanie liczb z zakresu a .. 99 oraz zwrócenie wartości 100
D. wypisanie wartości zmiennej a i zwrócenie wartości zmiennej n
Wszystkie niepoprawne odpowiedzi zawierają błędne założenia dotyczące zakresu wypisywanych liczb oraz wartości zwracanej przez funkcję. W przypadku opcji dotyczącej zwrócenia liczb z przedziału a .. 99, ściśle rzecz biorąc, nie uwzględnia ona końcowej wartości 100, co jest niepoprawne, ponieważ funkcja z założenia przewiduje iterację aż do wartości 100. W odpowiedzi dotyczącej wypisania liczb z przedziału a .. 99 i zwrócenia wartości 100, również występuje błąd, ponieważ funkcja nie kończy się na 99, a na 100, a wartość zwracana przez funkcję to 'n', która po ostatniej iteracji wynosi 101. Alternatywnie, jeśli chodzi o wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n, ta odpowiedź nie odnosi się do głównego celu funkcji, którym jest wypisanie liczb w określonym zakresie. Wartość zmiennej 'a' nie jest wypisywana jako pojedyncza wartość, a 'n' jako iterator nie reprezentuje wartości 100, lecz przekracza ją po zakończeniu pętli. Dlatego wszystkie te odpowiedzi zawierają fundamentalne nieporozumienia co do działania pętli for i użycia zmiennej 'n' w kontekście realizacji założonej funkcji.

Pytanie 5

W jakim języku została napisana podana linia kodu

Ilustracja do pytania
A. C#
B. PHP
C. Python
D. JavaScript
Linia kodu przedstawiona w pytaniu to przykład zastosowania języka JavaScript, co jest kluczowe do rozróżnienia od innych języków programowania. Kod w języku C# różniłby się znacząco, gdyż C# jest częściej używany w kontekście aplikacji desktopowych lub serwerowych, a jego składnia wymagałaby innego podejścia do manipulacji elementami interfejsu użytkownika. PHP, będąc językiem skryptowym działającym po stronie serwera, również nie używa DOM w taki sam sposób jak JavaScript. Jego rola w web development jest bardziej związana z przetwarzaniem danych na serwerze i generowaniem dynamicznych treści przed wysłaniem ich do przeglądarki. Python, znany ze swojej wszechstronności, jest rzadziej używany do bezpośredniej manipulacji DOM w aplikacjach webowych, chociaż istnieją biblioteki umożliwiające takie działania. Typowe błędy w rozróżnianiu tych języków wynikają z niezrozumienia ich specyficznych zastosowań i kontekstów działania. JavaScript jest unikalny ze względu na swoją zdolność do działania bezpośrednio w przeglądarce użytkownika, co pozwala na żywe i dynamiczne zmiany w treści strony bez potrzeby odświeżania. Rozumienie tych różnic jest kluczowe dla skutecznego rozwoju webowego i skutecznego wykorzystania odpowiednich narzędzi w odpowiednich kontekstach.

Pytanie 6

W języku JavaScript stworzono fragment kodu. Po uruchomieniu skryptu zmienna x

<script>
  var x = 10;
  x++;
  console.log(x);
</script>
A. Będzie równa 10 i zostanie wypisana w głównym oknie przeglądarki internetowej
B. Będzie równa 10 i zostanie wypisana w dokumencie HTML
C. Będzie równa 11 i zostanie wypisana w konsoli przeglądarki internetowej
D. Będzie równa 11 i zostanie wypisana w oknie popup
Rozważając fragment kodu należy zwrócić uwagę na zastosowanie operatora postinkrementacyjnego x++ który zwiększa wartość zmiennej x o 1. Z tego powodu wszelkie odpowiedzi sugerujące że x pozostanie równy 10 są błędne. Częstym błędem jest myślenie że operacja x++ nie wpływa natychmiastowo na wartość zmiennej jednak w rzeczywistości po jej wykonaniu x zostaje zwiększone do 11. Kolejnym aspektem do rozważenia jest sposób wyświetlania wartości zmiennej. Console.log jest powszechnie używanym narzędziem do wyświetlania informacji w konsoli przeglądarki co odróżnia go od metod takich jak alert które wyświetlają informacje w oknach popup. Dlatego odpowiedzi sugerujące użycie okna popup również są nieprawidłowe. Ważne jest zrozumienie że console.log nie wpływa na wizualną część dokumentu HTML i nie zmienia jego zawartości co błędnie sugerują odpowiedzi przewidujące wyświetlenie w dokumencie HTML. Zrozumienie różnic w działaniu różnych metod wyjścia w JavaScript jest kluczowe dla debugowania i tworzenia aplikacji webowych. Typowym błędem jest również przypuszczenie że console.log ma bezpośredni wpływ na użytkownika końcowego podczas gdy jego głównym celem jest wspieranie deweloperów w analizie i rozwoju aplikacji. Aby uniknąć tych nieporozumień warto zgłębić dokumentację funkcji oraz praktyki debugowania w JavaScript co pozwala na bardziej efektywne wykorzystanie dostępnych narzędzi w pracy z kodem.

Pytanie 7

Co robi funkcja napisana w języku JavaScript?

function fun1(f)
{
  if(f < 0)
    f = f * (-1);
  return f;
}
A. wypisanie wartości odwrotnej do f
B. wypisanie wartości bezwzględnej z f
C. zwrócenie wartości odwrotnej do f
D. zwrócenie wartości bezwzględnej z f
Patrząc na błędne odpowiedzi, trzeba zauważyć, że funkcja w ogóle nie zajmuje się wypisywaniem wartości ani obliczaniem odwrotności liczby. W JavaScript do wypisywania danych używamy polecenia console.log(), a tutaj go nie ma. Ta funkcja tylko zwraca wynik, co w programowaniu jest super ważne, bo później można wykorzystać tę wartość w dalszym kodzie. Kolejna pomyłka to myślenie, że funkcja zwraca odwrotność liczby. Odwrotność to zupełnie co innego i związane z tym, że musimy znaleźć liczbę, która pomnożona przez pierwotną daje 1. W tym wypadku funkcja tylko zmienia znak liczby, gdy jest ona ujemna, co jest typowe dla obliczania wartości bezwzględnej. Zrozumienie tych różnic jest naprawdę kluczowe, jeśli chcesz uniknąć typowych błędów w programowaniu i lepiej pisać kod.

Pytanie 8

DOM oferuje metody oraz właściwości, które w języku JavaScript umożliwiają

A. przesyłanie danych formularzy bezpośrednio do bazy danych
B. pobieranie i zmianę elementów strony, która jest wyświetlana przez przeglądarkę
C. przeprowadzanie operacji na zmiennych zawierających liczby
D. manipulację łańcuchami zdefiniowanymi w kodzie
Dobra robota! Odpowiedź jest poprawna, bo to właśnie DOM, czyli Document Object Model, pozwala programistom na zmianę struktury i stylu dokumentów HTML i XML. Dzięki DOM w JavaScript można na bieżąco zmieniać treść i układ strony bez konieczności jej przeładowania. Weźmy na przykład taki przypadek: chcemy zmienić tekst w elemencie <h1>. Robimy to, wybierając ten element metodą `document.getElementById()` i przypisując nową wartość do `innerHTML`. Standardy W3C mówią, jak to wszystko ma działać, dzięki czemu DOM jest uznawany w branży. Umiejętność manipulacji DOM jest mega ważna przy tworzeniu interaktywnych aplikacji webowych, jak różne formularze, które pozwalają użytkownikom dodawać i edytować dane. Dobrze wykorzystany DOM sprawia, że aplikacje są szybsze i bardziej responsywne, co jest kluczowe w nowoczesnym programowaniu front-end.

Pytanie 9

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

A. nazwa jest atrybutem klasy przedmiot
B. nazwa jest cechą obiektu przedmiot
C. zmienna x będzie przechowywać wynik działania funkcji przedmiot
D. zmienna x będzie zawierać wynik działania metody nazwa
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 10

Jakie zdarzenie należy wykorzystać, aby funkcja JavaScript była aktywowana za każdym razem, gdy użytkownik wprowadza jakikolwiek znak w polu tekstowym?

A. onload
B. onkeydown
C. onclick
D. onmouseout
Funkcja JavaScript, która ma być wywoływana za każdym razem, gdy użytkownik wpisuje dowolny znak do pola edycji, powinna korzystać ze zdarzenia 'onkeydown'. Zdarzenie to jest wywoływane w momencie naciśnięcia klawisza, co oznacza, że natychmiast odzwierciedla zmiany wprowadzone przez użytkownika. Dzięki temu możemy w czasie rzeczywistym reagować na dane wprowadzane przez użytkownika, co jest niezwykle przydatne w aplikacjach interaktywnych. Przykładowo, jeśli mamy pole tekstowe, w którym użytkownik wprowadza swoje imię, możemy użyć zdarzenia 'onkeydown', aby sprawdzić, czy imię nie jest za krótkie lub nie zawiera niedozwolonych znaków. Można to zrealizować w następujący sposób: <input type='text' onkeydown='myFunction()'>. Standardy W3C definiują zdarzenia klawiaturowe jako kluczowy element interakcji użytkownika z aplikacjami webowymi, co czyni 'onkeydown' bardzo istotnym w kontekście UX/UI.

Pytanie 11

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

A. liczbowym
B. logicznym
C. ciągu znaków
D. wyliczeniowym
Wybór liczbowego typu danych w kontekście deklaracji zmiennej x jest błędny, ponieważ typ liczbowy obejmuje wartości takie jak całkowite i zmiennoprzecinkowe, które nie mają nic wspólnego z wartościami prawda/fałsz. Typ liczbowy w JavaScript jest używany do operacji matematycznych oraz obliczeń, a przypisanie true do zmiennej x nie jest równoznaczne z przypisaniem jakiejkolwiek liczby. Z kolei ciąg znaków to inny typ danych, który jest używany do reprezentowania tekstu. W JavaScript ciągi są definiowane przez pojedyncze, podwójne lub backtickowe cudzysłowy. Przykładowo, 'true' jako ciąg znaków nie jest tym samym co wartość boolean true, co czyni tę odpowiedź niepoprawną. Ostatecznie, typ wyliczeniowy, który w innych językach programowania odnosi się do zestawu nazwanych wartości, również nie ma zastosowania w tym przypadku, ponieważ JavaScript nie wspiera wyliczeń w tradycyjnym sensie. W skrócie, typy liczbowy, ciąg znaków oraz wyliczeniowy nie odnoszą się do logicznych wartości, jakimi są true i false, co wprowadza w błąd w kontekście pytania o typ zmiennej x.

Pytanie 12

Wskaż właściwy zapis polecenia napisanego w języku JavaScript?

A. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " + 3.14 )
B. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " 3.14 )
C. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " . 3.14 )
D. document.write("Liczba ? z dokładnością do 2 miejsc po przecinku ? " ; 3.14 )
Odpowiedź ta jest poprawna, ponieważ używa operatora konkatenacji (+) do połączenia tekstu oraz wartości liczbowej 3.14 w jednej instrukcji document.write. Funkcja document.write jest metodą w Javascript, która umożliwia dynamiczne wstawianie treści HTML do dokumentu. W przykładzie, ciąg tekstowy "Liczba ? z dokładnością do 2 miejsc po przecinku ? " jest poprawnie połączony z wartością liczbową, co skutkuje wyświetleniem na stronie rezultatu, który jest czytelny i zrozumiały dla użytkownika. Warto również zauważyć, że w takich sytuacjach stosuje się również metody formatowania liczb, takie jak toFixed() dla uzyskania precyzyjnych wyników, np. (3.14).toFixed(2) zwróci '3.14'. Zgodność z ECMAScript oraz standardami W3C sprawia, że ta konstrukcja jest zarówno praktyczna, jak i zgodna z najlepszymi praktykami programowania w JavaScript.

Pytanie 13

W języku JavaScript rezultat działania instrukcji zmienna1 –= 1; będzie identyczny jak wynik instrukcji

A. zmienna1––;
B. zmienia1 = zmienna1 - 0;
C. zmienna1 === zmienna1 - 1;
D. zmienna1++;
Instrukcja 'zmienna1 -= 1;' w języku JavaScript jest skróconą formą zapisu, która oblicza nową wartość zmiennej 'zmienna1', odejmując od niej 1. Działa to na zasadzie równania, gdzie zmienna zostaje zaktualizowana do nowej wartości. Z kolei zapis 'zmienna1--;' również dokonuje dekrementacji zmiennej 'zmienna1' o 1, ale w formie operatora post-dekrementacji. W praktyce oznacza to, że obie instrukcje mają ten sam efekt końcowy, czyli zmiana wartości 'zmienna1' o 1 w dół. Przykładowo, jeżeli 'zmienna1' wynosi 5 przed wykonaniem powyższych operacji, to po ich wykonaniu jej wartość wyniesie 4. Takie skrócone formy zapisu są powszechną praktyką w programowaniu, ponieważ umożliwiają bardziej zwięzłe i czytelne przedstawienie operacji na zmiennych, co jest zgodne z zasadami czystego kodu. Używanie operatorów skróconych, takich jak '+=' i '-=', jest zalecane, ponieważ poprawia czytelność i zrozumiałość kodu.

Pytanie 14

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. sprawdzenie, czy liczba a jest nieparzysta; w przypadku potwierdzenia, wypisanie jej
B. zwrócenie wartości liczb parzystych od a do b
C. wypisanie liczb parzystych z zakresu od a do b
D. wypisanie wszystkich liczb z zakresu od a do b
Odpowiedzi takie jak "wypisanie wszystkich liczb z przedziału od a do b" oraz "zwrócenie wartości parzystych liczb od a do b" ilustrują powszechne nieporozumienia dotyczące działania funkcji oraz jej logiki. Funkcja nie wypisuje wszystkich liczb z przedziału, ponieważ jej konstrukcja ogranicza wyniki do liczb parzystych. Odpowiedź ta nie uwzględnia kluczowego kroku w funkcji, polegającego na modyfikacji zmiennej a, co oznacza, że w przypadku nieparzystego a, pierwsza wypisana liczba będzie parzysta. Natomiast odpowiedź sugerująca, że funkcja zwraca wartości parzyste, jest również myląca, ponieważ funkcja nie zwraca wartości (nie używa return), a jedynie wypisuje je na stronie za pomocą document.write(). To może prowadzić do nieporozumień, zwłaszcza w kontekście oczekiwań dotyczących struktury danych. Typowym błędem myślowym jest zakładanie, że pętle for mogą generować wszystkie liczby w danym zakresie, gdy w rzeczywistości sposób ich inkrementacji (w tym przypadku o 2) determinuje, które wartości są ostatecznie wyświetlane. Przykładem na to jest sytuacja, gdy użytkownik nie dostrzega, że pętla zmienia krok zwiększenia i przez to nie uzyskuje pełnej sekwencji liczb. Warto zwrócić uwagę na konwencje programistyczne, takie jak zasady dotyczące wypisywania danych i używania zwrotów, co jest kluczowe dla tworzenia przejrzystego i efektywnego kodu.

Pytanie 15

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

var str1 = "JavaScript";
var str2 = str1.substring(2,6);
A. avaS
B. vaSc
C. vaScri
D. nvaScr
Wykorzystując metodę substring w JavaScript możemy wyodrębnić fragmenty łańcucha znaków bazując na indeksach początkowym i końcowym. Indeksowanie w JavaScript zaczyna się od zera co oznacza że pierwszy znak ma indeks 0 drugi 1 i tak dalej. W przypadku zmiennej str1 przechowującej łańcuch JavaScript wywołanie str1.substring(2 6) zwraca fragment zaczynający się od znaku o indeksie 2 do znaku o indeksie 5 włącznie. Oznacza to że metoda wybiera znaki od trzeciego do szóstego nie wliczając znaku o indeksie 6. W praktyce oznacza to że z napisu JavaScript wybierane są znaki aScr co tworzy łańcuch vaSc. Zrozumienie działania metody substring jest kluczowe przy pracy z łańcuchami znaków w JavaScript. Jest to standardowa metoda używana powszechnie do manipulacji tekstem co ma zastosowanie w wielu dziedzinach programowania frontendowego i backendowego. Ważne jest aby pamiętać o zeroindeksowaniu co pozwala uniknąć typowych błędów związanych z nieprawidłowym określeniem zakresu znaków.

Pytanie 16

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

var Imiona = new Array('Anna','Joanna','Monika','Agata');
A. Imiona[4];
B. Imiona['Agata'];
C. Imiona[3];
D. Imiona[Agata];
Wybór Imiona[4] jest błędny, ponieważ jak wcześniej wspomniano, tablice w JavaScript są indeksowane od zera i tablica Imiona ma cztery elementy, co oznacza, że najwyższy indeks dostępny w tym przypadku to 3. Próba uzyskania dostępu do elementu o indeksie 4 zwróci undefined, co jest powszechnym źródłem błędów podczas programowania. Kolejna nieprawidłowa odpowiedź, Imiona[Agata], również nie jest poprawna, gdyż nie możemy używać wartości zmiennych (takich jak 'Agata') jako indeksów w tablicach bez wcześniejszej deklaracji. W JavaScript zmienne muszą być zdefiniowane, aby można było ich użyć. Imiona['Agata'] to kolejny przykład błędnego podejścia. Chociaż JavaScript pozwala na uzyskiwanie dostępu do właściwości obiektów za pomocą notacji z kropką lub bracket notation, w przypadku tablic nie można używać nazw elementów, które nie są ich indeksami. Tego rodzaju błędy są często wynikiem niepełnego zrozumienia różnicy między tablicami a obiektami w JavaScript. Zrozumienie tych różnic oraz praktykowanie poprawnego indeksowania tablic jest kluczowe dla każdego programisty, aby uniknąć trudności w kodowaniu oraz zapewnić, że aplikacje działają zgodnie z zamierzeniem.

Pytanie 17

Co robi funkcja przedstawiona w kodzie JavaScript?

function tekst() {
var h = location.hostname;
document.getElementById("info").innerHTML = h;
}
A. pokazać na przycisku lokalizację hosta, a po jego naciśnięciu umożliwić przejście do określonej lokalizacji
B. wyświetlić w elemencie o id = "info" nazwę hosta, z którego pochodzi wyświetlona strona
C. umożliwić przejście do wskazanej lokalizacji hosta
D. wyświetlić w elemencie o id = "info" adres hosta wskazany przez pierwszy odnośnik
Nieprawidłowe odpowiedzi wynikają z błędnego zrozumienia działania obiektu Location oraz manipulacji DOM w JavaScript. Jedna z odpowiedzi sugeruje, że funkcja umożliwia przejście do wskazanej lokalizacji hosta, co nie jest zgodne z działaniem location.hostname. Metoda ta jedynie pobiera nazwę hosta, nie wykonuje żadnych operacji nawigacyjnych. Innym błędnym założeniem jest twierdzenie, że funkcja wyświetla adres hosta wskazany pierwszym odnośnikiem. W rzeczywistości, location.hostname zwraca nazwę hosta aktualnej strony, a nie żadnego odnośnika w dokumencie. Kolejna błędna odpowiedź dotyczy umieszczenia tej nazwy na przycisku. Kod wyraźnie pokazuje, że manipulacja dotyczy elementu o id info, a nie przycisku, nie ma więc nic wspólnego z interakcją użytkownika poprzez kliknięcie. Takie nieporozumienia mogą wynikać z niedostatecznej znajomości specyfikacji obiektu Location oraz technik manipulacji DOM w JavaScript, co jest kluczowe dla efektywnego tworzenia dynamicznych i responsywnych stron internetowych. Poprawne zrozumienie pozwala tworzyć aplikacje, które są zarówno funkcjonalne, jak i bezpieczne dla użytkowników, co jest istotne w kontekście współczesnych standardów webowych.

Pytanie 18

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

A. new
B. var
C. variable
D. instanceof
W języku JavaScript kluczowe jest zrozumienie, jak deklarować zmienne oraz jakie słowa kluczowe są do tego używane. Słowo 'new' jest używane do tworzenia nowych instancji obiektów, co oznacza, że nie służy do deklaracji zmiennych. Typowy błąd, który można popełnić, to mylenie konstruktorów i zmiennych, gdzie 'new' używane jest w kontekście obiektów, takich jak: var obiekt = new NazwaObiektu();. Kolejne słowo kluczowe, 'variable', nie jest w ogóle rozpoznawane przez JavaScript jako słowo kluczowe i nie ma zastosowania w kontekście deklaracji zmiennych. W rzeczywistości, w JavaScript nie istnieje takie słowo kluczowe, co może prowadzić do nieporozumień u osób uczących się języka. Ostatnie słowo, 'instanceof', to operator, który służy do sprawdzania, czy dany obiekt jest instancją konkretnego konstruktora. Posługiwanie się nim w kontekście deklaracji zmiennych jest całkowicie błędne i może prowadzić do zamieszania. Kluczowe jest, aby dobrze zrozumieć różnice w sposobie deklaracji zmiennych oraz celów poszczególnych słów kluczowych w JavaScript. Brak takiej wiedzy może prowadzić do chaosu w kodzie oraz trudności w jego utrzymaniu, co jest sprzeczne z dobrymi praktykami programistycznymi.

Pytanie 19

Aby w JavaScript wykonać wymienione kroki:

1. Wyświetlić okno do wpisania wartości z poleceniem "Podaj kwalifikację: ",
   następnie po zatwierdzeniu
2. Umieścić napis na stronie internetowej, gdzie w miejscu kropek znajduje się
   wartość pobrana z okna "Kwalifikacja: ..."
należy w znaczniku <script> umieścić kod
A. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

B. A = prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " .A);

C. A = alert("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);

D. A << prompt("Podaj kwalifikację: ");
   document.write("Kwalifikacja: " + A);
A. C.
B. A.
C. D.
D. B.
Wygląda na to, że nie do końca trafiłeś. Niektóre odpowiedzi sugerowały użycie funkcji, które nie nadają się do tego zadania. Na przykład, `alert` pokazuje tylko jakiś komunikat, ale nie pozwala na wpisanie czegoś przez użytkownika. Inną możliwością mogły być też metody manipulacji DOM, ale to już trochę bardziej skomplikowane i nie było w tym przypadku konieczne. Ważne jest, żeby wiedzieć, które funkcje w JavaScript są do czego, żeby móc je dobrze wykorzystać.

Pytanie 20

Która metoda obiektu location w języku JavaScript pozwala na zamianę aktualnego dokumentu na dokument z adresu podanego w parametrze metody?

A. reaload();
B. open();
C. replace();
D. close();
Wybór metod takich jak open(), close() oraz reload() świadczy o niepełnym zrozumieniu funkcji obiektu location w JavaScript oraz ich zastosowania w kontekście manipulacji dokumentami webowymi. Metoda open() jest używana do otwierania nowych okien przeglądarki lub kart, co nie ma związku z zastępowaniem bieżącego dokumentu. Użytkownicy często mylą tę metodę z funkcjonalnością nawigacyjną, jednak efektem otwarcia nowego okna jest jedynie dodanie nowej instancji, a nie modyfikacja bieżącej. Z kolei close() ma na celu zamknięcie obecnego okna, co również nie odpowiada na potrzebę zmiany dokumentu. Użycie reload() może prowadzić do nieporozumień, gdyż ta metoda odnawia bieżący dokument, ale nie zastępuje go nowym - przeglądarka ponownie ładuje tę samą stronę, co nie spełnia założenia pytania. W praktyce, użytkownik, uznając reload() za właściwe podejście, może napotkać na problemy z wydajnością i użytecznością, gdyż wielokrotne odświeżanie tej samej strony może prowadzić do niepożądanych efektów, takich jak utrata danych w formularzach. Kluczowe jest zrozumienie różnic pomiędzy tymi metodami oraz ich odpowiednim zastosowaniem w kontekście nawigacji i zarządzania historią przeglądarki, co jest istotne dla osiągnięcia optymalnego doświadczenia użytkownika.

Pytanie 21

W języku JavaScript przedstawiona definicja jest definicją

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. klasy.
B. tablicy.
C. kolekcji.
D. obiektu.
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 22

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 )
Gdy patrzymy na błędne odpowiedzi, to wychodzi na jaw parę rzeczy, które mogą być mylące, jeśli chodzi o operacje logiczne. Na przykład, w tej opcji, gdzie użyto '||' (OR), pojawia się problem, bo warunek 'a > 0 || a < 100 || b < 0' nie trzyma się kupy. Daje nam to możliwość zaakceptowania wartości, które są poza tym, co chcieliśmy. Z kolei w odpowiedzi 'if (a > 0 || a < 100 && b > 0)' mamy mieszankę operatorów, co może wprowadzić chaos. Lepiej się postarać i trzymać się jednego typu operatorów, żeby uniknąć zamieszania. W innej opcji, 'if (a > 0 && a < 100 || b < 0)', znowu pojawia się ten problem z '||', co sprawia, że logika jest niejasna. Jak się pisze kod, dobrze jest być precyzyjnym, by uniknąć takich błędów, które mogą potem skomplikować sprawę.

Pytanie 23

W języku JavaScript zdefiniowano funkcję potega. Funkcja ta

function potega(a, b = 2) { ... return wynik; }
A. nie zwraca wartości
B. nie przyjmuje żadnych argumentów
C. może być wywołana z jedną wartością
D. wymaga podania dwóch argumentów przy wywołaniu
W JavaScript funkcja może przyjmować parametry, zwracać wartości i być wywoływana z różną liczbą argumentów. Odpowiedź, że funkcja potega nie przyjmuje parametrów, jest nieprawidłowa. W kodzie widzimy, że przyjmuje dwa parametry (a, b), z czego drugi ma wartość domyślną. Funkcja w JavaScript może zwracać wartość poprzez instrukcję return, co jest standardową praktyką w celu uzyskania wyniku operacji. Zatem stwierdzenie, że nie zwraca żadnej wartości, jest błędne. W kodzie widoczna jest instrukcja return, co oznacza, że funkcja zwraca wynik. Koncepcja, że funkcja wymaga podania dwóch parametrów przy wywołaniu, również jest błędna, ponieważ jeden z parametrów ma przypisaną wartość domyślną i może być pominięty podczas wywołania funkcji. Wartości domyślne w JavaScript pozwalają na bardziej elastyczne użycie funkcji, co jest ugruntowaną praktyką od czasu wprowadzenia standardu ES6, umożliwiając łatwe zarządzanie brakującymi argumentami bez komplikowania kodu.

Pytanie 24

Pętla w kodzie JavaScript zostanie uruchomiona

Ilustracja do pytania
A. 27 razy
B. 2 razy
C. 26 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 25

W JavaScript zapis a++; można przedstawić w inny sposób jako

A. a << 1
B. a = a & 1
C. a = a + 1
D. 1 += a
Wszystkie pozostałe opcje są nieprawidłowe z kilku powodów. Odpowiedź 'a = a & 1;' wykorzystuje operator bitowy AND, który jest stosowany do porównywania bitów dwóch liczb. Ten zapis jest niepoprawny, ponieważ nie realizuje powiększenia wartości zmiennej, a raczej przekształca jej wartość na podstawie bitowego porównania z 1, co nie ma sensu w kontekście inkrementacji. Odpowiedź '1 += a;' jest również błędna, ponieważ nie można używać stałej liczby po lewej stronie operatora przypisania. Dodatkowo, powinna być to operacja, która przypisuje wartość do zmiennej, a nie odwrotnie. W JavaScript nie można modyfikować stałych w ten sposób. Odpowiedź 'a << 1;' stosuje operator bitowego przesunięcia w lewo, co także nie ma związku z inkrementacją. Operator ten przesuwa bity liczby 'a' w lewo o jeden, co jest równoważne mnożeniu przez 2, a nie dodawaniu 1. Użycie tych operatorów pokazuje typowe nieporozumienie dotyczące operatorów w JavaScript oraz ich zastosowań. W kontekście programowania kluczowe jest zrozumienie, które operatory spełniają określone funkcje, aby unikać nieporozumień i błędów w kodzie.

Pytanie 26

W języku JavaScript zapisano poniższy fragment kodu. `````` Po uruchomieniu skryptu zmienna x

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

Pytanie 27

Instrukcja JavaScript: document.write5==='5'); co zostanie wyświetlone?

A. 1
B. true
C. 0
D. false
W analizowanym wyrażeniu JavaScript, 'document.write5==='5');', kod ten zawiera błąd składniowy, a także logiczny. Przede wszystkim, użycie 'document.write5' jest niepoprawne, ponieważ 'write' to metoda obiektu 'document', a '5' nie jest częścią tej metody. Poprawna forma powinna wyglądać jak 'document.write(5 === '5');'. W tej poprawionej wersji sprawdzamy, czy liczba 5 jest równa stringowi '5'. W JavaScript operator '===' sprawdza zarówno wartość, jak i typ operandów. W tym przypadku, liczba 5 jest typu number, a '5' jest typu string. Ponieważ typy są różne, wynik porównania będzie 'false'. Przy użyciu operatora '==' wynik byłby 'true', ponieważ operator ten nie sprawdza typów, ale w tym przypadku używamy operatora '===', więc wynik to 'false'. Przykład: '5 === '5'' zwraca 'false', co oznacza, że operacja nie jest prawdziwa. W kontekście standardów ECMAScript, porównania z użyciem '===' są zalecane, aby unikać niejasności i błędów typów.

Pytanie 28

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 zmiennej a oraz zwrócenie wartości zmiennej n
B. wypisanie wartości z zakresu a...100 i zwrócenie wartości zmiennej n
C. wypisanie wartości z zakresu a..99 i zwrócenie liczby 100
D. zwrócenie wartości z zakresu a..99
Analizując pozostałe odpowiedzi możemy zauważyć kilka nieporozumień. Jeśli spojrzymy na odpowiedź sugerującą że funkcja zwraca liczby z przedziału a..99 warto zrozumieć że takie stwierdzenie jest niepoprawne. Pętla w kodzie jasno wskazuje że iteracja trwa aż do 100 włącznie stąd wszystkie wartości od a do 100 zostaną wypisane na ekran. To jest typowy błąd gdzie zakłada się błędny zakres iteracji. W przypadku odpowiedzi dotyczącej wypisywania liczb z przedziału a..99 i zwrócenia wartości 100 należy zauważyć że funkcja zwraca wartość zmiennej sterującej n po zakończeniu pętli. Ponieważ pętla kończy się przy n równym 100, wartość zwrócona będzie równa 101. Takie nieporozumienie może wynikać z nieprawidłowego zrozumienia mechanizmu działania pętli for. Odpowiedź dotycząca wypisania wartości zmiennej a oraz zwrócenia wartości zmiennej n również jest błędna. Dokument.write w pętli wywoływany jest dla zmiennej n, nie a. Ponadto zmienna n po zakończeniu pętli ma wartość 101, a nie a. Te nieścisłości często wynikają z mylnego rozróżnienia pomiędzy zmienną początkową iteracji a zmienną sterującą. W celu uniknięcia takich błędów kluczowe jest dokładne śledzenie przepływu kontroli w programie, co pozwala na zrozumienie jak wartości zmiennych są zmieniane w trakcie wykonywania kodu. Ważne jest również testowanie kodu w różnych scenariuszach aby upewnić się że zrozumienie jego działania jest prawidłowe. Proste ćwiczenia z debugowaniem kodu mogą pomóc w wypracowaniu takich umiejętności. Każde z powyższych podejść ilustruje typowe błędy jakie mogą się pojawić podczas pracy z pętlami i iteracjami w programowaniu i jak ważne jest uważne analizowanie kodu i jego logiki. To również pokazuje jak istotne jest stosowanie dobrych praktyk takich jak jasne nazewnictwo zmiennych i czytelna struktura kodu aby ułatwić jego zrozumienie i dalszy rozwój.

Pytanie 29

Jak nazywa się metoda, która pozwala na nawiązanie asynchronicznego połączenia między klientem a serwerem oraz umożliwia wymianę danych bez przeładowania całej strony WWW?

A. AJAX
B. XML
C. PHP
D. YBScript
AJAX, czyli Asynchronous JavaScript and XML, to naprawdę fajna technika, która pozwala na komunikację między klientem a serwerem bez konieczności przeładowywania całej strony. To znaczy, że możemy wysyłać i odbierać dane w tle, co jest mega wygodne. Dzięki temu możemy np. aktualizować tylko część strony, kiedy użytkownik coś kliknie. Dużo nowoczesnych aplikacji, jak Gmail, korzysta z AJAX, żeby dynamicznie ładować i wysyłać e-maile. W praktyce, gdy użytkownik wysyła wiadomość, to nie musi czekać, aż załaduje się cała strona, żeby zobaczyć nową treść. AJAX współpracuje z różnymi technologiami, jak JSON, co ułatwia wymianę danych w formacie, który JavaScript bez problemu przetwarza. Generalnie, standardy webowe mówią, że warto korzystać z AJAX, bo poprawia to wydajność i responsywność aplikacji. Dlatego jest to narzędzie, które każdy nowoczesny deweloper stron powinien mieć w swoim arsenale.

Pytanie 30

var obj1 = {     czescUlamkowa: 10,     czescCalkowita: 20,     oblicz: function) {...} } Kod przedstawiony powyżej jest zapisany w języku JavaScript. W podanej definicji obiektu, metodą jest element o nazwie

A. czescUlamkowa
B. oblicz
C. czescCalkowita
D. obj1
Zrozumienie, dlaczego obj1 i jego właściwości czescUlamkowa oraz czescCalkowita nie są metodami, to kluczowy element nauki programowania w JavaScript. Obiekt obj1 to jakby instancja, która przechowuje dane, ale nie jest funkcją ani metodą. Generalnie, obiekt to struktura z różnymi właściwościami i metodami, ale sama z siebie nie robi nic. CzescUlamkowa i czescCalkowita to tylko właściwości z wartościami liczbowymi, ale nie mają w sobie żadnej logiki wykonawczej. Więc mylenie ich z metodami jest po prostu błędne, bo nie mają przypisanych funkcji ani nie są zdefiniowane jako funkcje w kontekście tego obiektu. Żeby właściwości stały się metodami, musiałyby być zdefiniowane jako funkcje, jak ta nasza oblicz. Metoda oblicz to przykład funkcji związanej z obiektem, a nie tylko przechowującej dane. Dlatego całość obj1 i jego właściwości czescUlamkowa oraz czescCalkowita nie mogą być uznawane za metody. Ważne jest, żeby to zrozumieć, bo to wpływa na to, jak zarządza się danymi w aplikacjach JavaScript.

Pytanie 31

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

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

Pytanie 32

Który zapis w języku JavaScript daje taki sam wynik jak poniższy kod?

x = 0;
x += 10;
A. x = 0; x--; x *= 9
B. x = 0; x++; x = x + 9
C. x = 10; x = x + 10
D. x = 10; x = 0
Odpowiedź, która została wybrana, jest poprawna, ponieważ wykonuje dokładnie te same operacje na zmiennej x, co pierwotny kod. Przypisanie x = 0; ustawia wartość x na 0, a następnie x++; zwiększa wartość x o 1, co daje 1. Następnie, dodając 9 do x za pomocą x = x + 9, otrzymujemy 10. Tak więc końcowa wartość zmiennej x wynosi 10, co jest zgodne z wynikiem oryginalnego zapisu x += 10, który również prowadzi do wartości 10. W praktyce, takie podejście jest zgodne z zasadami programowania, gdzie użycie operatorów inkrementacji i przypisania jest powszechną praktyką. Poprawne zarządzanie zmiennymi i ich modyfikacja przy pomocy operatorów to kluczowy aspekt pisania efektywnego i łatwego do zrozumienia kodu w JavaScript. Pamiętaj, aby korzystać z takich konstrukcji, gdyż są one nie tylko czytelne, ale również optymalne.

Pytanie 33

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

A. for(i=2;i<=12;i+=2) {document.write(i);}
B. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
C. for(i=2;i<12;i++) {i++; document.write(i);}
D. for(i=2;i<12;i+=2) {document.write(i);}
Prawidłowe zrozumienie działania pętli for w JavaScript jest kluczowe dla tworzenia efektywnych skryptów. Odpowiedzi, które nie są poprawne, najczęściej wynikają z nieporozumień dotyczących sposobu działania inkrementacji oraz warunków zakończenia pętli. Przykładowo, konstrukcja for(i=2;i<12;i+=2) nie osiągnie ostatniej liczby parzystej 12, co skutkuje wyświetleniem jedynie 2, 4, 6, 8 i 10, a więc pięciu liczb parzystych. Zrozumienie granic pętli jest istotne, aby uzyskać oczekiwane rezultaty. Inne podejście, czyli for(i=2;i<12;i++) {i++; document.write(i);}, wprowadza dodatkowe zwiększenie zmiennej i wewnątrz pętli, co może prowadzić do nieoczekiwanych rezultatów - w tym przypadku, liczenie kończy się na 12, ale tylko wartości nieparzyste będą drukowane, czyli 3, 5, 7, 9, 11, co jest błędne w kontekście zadania. W kontekście innej odpowiedzi, for(i=2;i<=12;i++) {i=i+2; document.write(i);}, również nie działa zgodnie z zamierzeniem, ponieważ zaczyna od 2 i natychmiast zwiększa liczbę do 4, co prowadzi do pominięcia liczby 2 w wyniku końcowym. Dokładne zrozumienie działania pętli i jej konstrukcji jest kluczowe do uniknięcia takich błędów. W programowaniu ważne jest stosowanie jasnych i prostych konstrukcji, które są łatwe do zrozumienia, co pomaga nie tylko w pracy nad bieżącym projektem, ale również w późniejszej konserwacji oraz w pracy zespołowej.

Pytanie 34

Fragmenty kodu JavaScript w dokumencie HTML mogą być umieszczone

A. zarówno w sekcji <head>, jak i <body>, w znaczniku <java>
B. zarówno w sekcji <head>, jak i <body>, w znaczniku <script>
C. wyłącznie w sekcji <body>, w znaczniku <java>
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 35

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

A. przybliżonej wartości liczby
B. potęgi liczby
C. pierwiastka kwadratowego z liczby
D. bezwzględnej wartości 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 36

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

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

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

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

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

dane() = function {
    this.imie+" "+this.nazwisko;
};                 D.
A. D.
B. B.
C. C.
D. A.
No niestety, wybrałeś złą odpowiedź. Główny problem tutaj polega na tym, że źle rozumiesz, jak działa słowo kluczowe 'this' w JavaScript. Warianty B i D są nietrafione, bo chociaż mają metodę 'dane', to nie jest ona przypisana do obiektu 'osoba'. Bez tego przypisania, metoda nie ma jak sięgnąć do właściwości 'imię' i 'nazwisko'. Podobnie, wariant C też nie jest ok, bo nie wykorzystuje 'this'. Bez 'this', nie możesz sięgnąć do tych właściwości z obiektu 'osoba'. To częsty błąd, który wynika z mylenia kontekstu. Pamiętaj, że 'this' to twój sposób na wskazanie obiektu, w którym wywołujesz metodę.

Pytanie 37

W konstrukcji warunkowej w języku JavaScript należy sprawdzić sytuację, w której zmienne a oraz b są większe od zera, przy czym zmienna b jest mniejsza niż 100. Taki warunek powinien być zapisany 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) ...
Wybór niewłaściwego warunku logicznego w tej sytuacji prowadzi do błędnych wyników. Przykładowo, w pierwszym przypadku użycie operatora OR (||) sprawia, że warunek zwróci true, jeśli którakolwiek z wartości będzie spełniona, co jest niezgodne z wymaganym zachowaniem. To oznacza, że jeśli 'a' lub 'b' będą dodatnie, ale 'b' będzie większe od 100, to warunek zostanie zrealizowany, co jest niepożądane. W drugim przypadku, mieszając operatory AND i OR, uzyskujemy niejednoznaczność. Warunek ten jest prawdziwy, jeżeli 'a' jest dodatnie oraz 'b' jest dodatnie lub większe od 100, co również nie spełnia naszych wymagań, gdyż obie zmienne muszą być dodatnie, a 'b' powinno być poniżej 100. W trzecim przypadku, zastosowanie operatora OR w sposób, który łączy warunki dotyczące 'b', prowadzi do tego, że warunek może być spełniony, nawet jeżeli 'b' jest większe od 100, co jest sprzeczne z naszymi założeniami. W każdej z tych sytuacji kluczowym błędem jest nieznalezienie właściwej logiki, która jednoznacznie określa, że obie zmienne muszą być dodatnie, a 'b' musi być mniejsze niż 100, co możemy osiągnąć jedynie za pomocą operatora AND.

Pytanie 38

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

A. for(i=2;i<=12;i+=2) {document.write(i);}
B. for(i=2;i<=12;i++) {i=i+2; document.write(i);}
C. for(i=2;i<12;i+=2) {document.write(i);}
D. for(i=2;i<12;i++) {i++; document.write(i);}
Pierwsza z analizowanych pętli, która przyjmuje formę for(i=2;i<12;i+=2) {document.write(i);}, jest niepoprawna, ponieważ wyświetli jedynie liczby parzyste od 2 do 10. Warunek końcowy pętli jest ustawiony na i<12, co oznacza, że pętla zakończy się przed wyświetleniem liczby 12, co skutkuje pominięciem ostatniej liczby parzystej w tym zakresie. Kolejna pętla to for(i=2;i<12;i++) {i++; document.write(i);}, która jest problematyczna ze względu na modyfikację zmiennej i w samym ciele pętli. Przy każdym przebiegu pętli wartość i zwiększa się o 1, a następnie jeszcze raz o 1 w document.write(i), co prowadzi do pominięcia co drugiej liczby. Efektem tej pętli będzie wyświetlenie liczb 3, 5, 7, 9, 11, co zupełnie odbiega od założonego celu. Ostatnia z rozważanych pętli, for(i=2;i<=12;i++) {i=i+2; document.write(i);}, również nie spełnia założeń, ponieważ inkrementuje zmienną i w sposób, który jest niezgodny z zamierzeniem wyświetlenia kolejnych liczb parzystych. Po pierwszym przebiegu pętli, wartość i wzrasta do 3, przez co wyświetlana jest liczba 3 oraz każda kolejna liczba jest pomijana. Efektem końcowym będzie wyświetlenie liczb 3, 5, 7, 9, 11, co również jest sprzeczne z wymaganym rezultatem. Każda z tych pętli pokazuje, jak ważne jest zrozumienie działania konstrukcji pętli oraz odpowiedniego ustalania warunków i inkrementacji w kontekście programowania w JavaScript.

Pytanie 39

W instrukcji warunkowej języka JavaScript należy zweryfikować sytuację, w której wartość zmiennej a mieści się w zakresie (0, 100), a wartość zmiennej b jest większa od zera. Taki warunek można zapisać w sposób 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)
Analizując inne odpowiedzi, można zauważyć, że każda z nich zawiera błędne założenia dotyczące logiki warunkowej. W przypadku pierwszej odpowiedzi, użycie operatora '||' (OR) w połączeniu z warunkiem 'b<0' jest niewłaściwe, ponieważ nie spełnia kryteriów podanych w pytaniu. Ten warunek pozwalałby na zaakceptowanie sytuacji, w której wartość 'b' może być ujemna, co jest sprzeczne z wymaganym sprawdzeniem, że 'b' musi być większe od zera. Druga odpowiedź nie uwzględnia w pełni przedziału dla 'a', ponieważ stosuje operator '||', co oznacza, że warunek może być spełniony, jeśli 'a' jest mniej niż 0 lub więcej niż 100, co jest sprzeczne z wymaganiami. Trzecia odpowiedź posługuje się z kolei zbyt szerokim zakresem warunków, wprowadzając możliwość, że 'a' może być poniżej 0 lub większe niż 100, oraz akceptując wartość 'b' mniejszą od zera. Wszystkie te błędy wynikają z niewłaściwego zrozumienia operatorów logicznych oraz ich zastosowania w kontekście warunków, co jest kluczowym aspektem programowania w JavaScript. Aby stosować logikę warunkową prawidłowo, programiści powinni dokładnie analizować, jakie warunki muszą zostać spełnione i jak operatorzy wpływają na całą logikę instrukcji. Zrozumienie tych zasad jest fundamentem efektywnego programowania.

Pytanie 40

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

if ((x < -5) || (x > 2))
    x++;
A. -4
B. -1
C. 3
D. 2
W danym przykładzie mamy do czynienia z instrukcją warunkową w języku JavaScript, która sprawdza, czy zmienna x spełnia jedno z dwóch warunków: x jest mniejsze od -5 lub x jest większe od 2. Operator logiczny OR (||) oznacza, że wystarczy spełnienie jednego z tych warunków, aby kod wewnętrzny został wykonany. Dla wartości x równej 3, warunek (x > 2) jest spełniony, ponieważ 3 jest większe od 2. W rezultacie instrukcja x++ zostanie wykonana, co oznacza inkrementację zmiennej x, czyli zwiększenie jej wartości o 1. Jest to przykład typowego zastosowania operatorów logicznych w programowaniu do kontroli przepływu programu. W praktyce umiejętność stosowania takich instrukcji jest kluczowa w tworzeniu kodu zdolnego do dynamicznej reakcji na różne warunki wejściowe. Ponadto, użycie operatora inkrementacji jest zgodne z najlepszymi praktykami w optymalizacji kodu, gdyż jest to szybki i efektywny sposób na modyfikację wartości liczbowych.