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 kwietnia 2026 00:47
  • Data zakończenia: 9 kwietnia 2026 01:02

Egzamin zdany!

Wynik: 21/40 punktów (52,5%)

Wymagane minimum: 20 punktów (50%)

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

W JavaScript wynik operacji przyjmuje wartość NaN, jeśli skrypt próbował wykonać

A. funkcję parseFloat zamiast parseInt na zmiennej typu liczbowego
B. operację arytmetyczną na dwóch zmiennych liczbowych dodatnich
C. operację arytmetyczną, a zmienna miała postać napisu
D. funkcję sprawdzającą długość napisu, a zawartość zmiennej była liczbą
Odpowiedzi, które nie są poprawne, można analizować z perspektywy ich logicznych i technicznych uzasadnień. W przypadku pierwszej sugestii, użycie funkcji parseFloat zamiast parseInt na zmiennej liczbowej nie prowadzi bezpośrednio do uzyskania wartości NaN, ponieważ obie funkcje są zaprojektowane do konwersji wartości tekstowych na liczby. Działanie parseFloat zwróci wartość liczbową, co pozwoli uniknąć błędu NaN. W konsekwencji, niezależnie od wyboru funkcji konwertującej, jeśli dane są poprawne, wynik nie będzie NaN. Kolejna niepoprawna odpowiedź odnosi się do przypadku, w którym działanie arytmetyczne jest wykonywane na dwóch zmiennych liczbowych dodatnich. W takim przypadku, jeśli obie zmienne są liczbami, wynik operacji arytmetycznej będzie również liczbą, a nie NaN. Ostatnia analiza dotyczy sytuacji, w której funkcja sprawdzająca długość napisu jest używana na zmiennej, która jest liczbą. Metoda ta, .length, działa na obiektach typu string i nie ma wpływu na zwracanie NaN, nawet jeśli wejściowe dane są liczbowe. Dlatego wszystkie te odpowiedzi nie są trafne w kontekście pytania dotyczącego pojawienia się wartości NaN w JavaScript.

Pytanie 2

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

A. debugowanie
B. interpretowanie
C. kompilowanie
D. przetwarzanie na kod maszynowy
Wykonanie kodu JavaScript w przeglądarce wymaga jego interpretowania, co oznacza, że kod jest analizowany i wykonywany linia po linii bezpośrednio przez silnik JavaScript wbudowany w przeglądarkę, taki jak V8 w Google Chrome czy SpiderMonkey w Firefoxie. W odróżnieniu od kompilacji, gdzie cały kod źródłowy jest przekształcany w kod maszynowy przed jego uruchomieniem, interpretacja pozwala na bardziej elastyczne i interaktywne programowanie. Dzięki temu programiści mogą dynamicznie modyfikować i testować skrypty bez potrzeby każdorazowego kompilowania. Przykładem zastosowania jest wbudowana konsola w przeglądarkach, gdzie można na bieżąco wprowadzać i testować fragmenty kodu JavaScript. Interpretacja jest zgodna z zasadami dobrych praktyk programowania webowego, takim jak szybka iteracja i prototypowanie, co czyni ją kluczowym elementem w tworzeniu aplikacji internetowych. Dodatkowo, dzięki interpretacji, JavaScript może być łatwo integrowany z HTML i CSS, co przyczynia się do rozwoju bogatych interfejsów użytkownika w aplikacjach webowych.

Pytanie 3

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

A. zmienna += 1;
B. zmienna === zmienna + 1;
C. zmienna = zmienna + 10;
D. zmienna--;
Wybór odpowiedzi sugerujących <span>zmienna--;</span> jest mylny, ponieważ operator <span>--</span> to operator dekrementacji, który zmniejsza wartość zmiennej o 1, co stoi w sprzeczności z celem inkrementacji. Implementacja <span>zmienna === zmienna + 1;</span> jest także błędna z dwóch powodów. Po pierwsze, porównuje wartość zmiennej z wartością zmiennej zwiększonej o 1, co w większości przypadków zwróci <span>false</span>, a nie zwiększa samej zmiennej. Takie porównania są używane w logice warunkowej, jednak nie mają zastosowania w kontekście zwiększania wartości zmiennej. Ostatnia propozycja <span>zmienna = zmienna + 10;</span> jest niepoprawna, ponieważ zwiększa wartość o 10, a nie o 1, co diametralnie zmienia wynik działania. Warto pamiętać, że w programowaniu istotne jest zrozumienie działania operatorów i ich zastosowania, aby uniknąć błędów logicznych, które mogą prowadzić do nieprzewidzianych wyników. Używając typowych konstrukcji w JavaScript, jak pętle czy funkcje, programiści często korzystają z operatorów inkrementacji i przypisania, co sprawia, że ich prawidłowe wykorzystanie jest kluczowe w codziennej pracy. Zrozumienie różnic między tymi operatorami jest zatem fundamentem w nauce programowania w JavaScript.

Pytanie 4

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

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

Pytanie 5

Jak prawidłowo skomentować linię kodu w języku Java Script? Komentarz powinien być umieszczony po znakach //

x = Math.max(a,b,c); //
A. nieprawidłowe dane
B. w zmiennej x minimalna wartość ze zmiennych a, b, c
C. w zmiennej x maksymalna wartość ze zmiennych a, b, c
D. wybór losowej wartości ze zmiennych a, b i c
Odpowiedź numer 1 jest całkiem trafna, bo funkcja Math.max w JavaScript tak naprawdę najpierw sprawdza, która z podanych wartości jest największa. W tym wypadku, x = Math.max(a, b, c) zwraca największą liczbę z a, b i c i przypisuje ją do x. To jest super przydatne, gdy musisz szybko porównać jakieś liczby, na przykład podczas analizowania danych albo ustalania maksymalnych limitów w aplikacjach internetowych. Math.max to część wbudowanej biblioteki Math, która ma sporo przydatnych funkcji. Wykorzystanie tej funkcji jest zgodne z dobrymi praktykami programowania, bo jest szybka i bezpieczna. Co ważne, Math.max przyjmuje różną liczbę argumentów, więc można ją łatwo dopasować do swoich potrzeb. Używanie tej funkcji naprawdę poprawia czytelność kodu, a to jest kluczowe w projektach, gdzie inne osoby mogą musieć zrozumieć nasz kod.

Pytanie 6

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

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

Jakie wyrażenie logiczne powinno być użyte w języku JavaScript, aby zastosować operacje tylko dla wszystkich liczb ujemnych z przedziału jednostronnie domkniętego <-200,-100)?

A. (liczba <=-200) && (liczba<-100)
B. (liczba >=-200) || (liczba>-100)
C. (liczba <=-200) || (liczba>-100)
D. (liczba >=-200) && (liczba<-100)
Patrząc na błędne odpowiedzi, pierwsza z nich korzysta z operatora OR (||), co powoduje, że wyrażenie jest prawdziwe, jeśli chociaż jeden z warunków jest spełniony. Więc, jeśli liczba jest niższa niż -200, to pierwszy warunek będzie prawdziwy i całość też. To sprawia, że operacje mogą być wykonywane na liczbach, które nie mieszczą się w naszym przedziale, co jest sprzeczne z tym, co chcemy osiągnąć. Kolejna odpowiedź też używa operatora OR, ale jej warunek mówi, że liczba ma być większa niż -100. To prowadzi do sytuacji, gdzie każda liczba powyżej -100 jest uznawana za poprawną, co jest totalnie niezgodne z naszym zamysłem. Ostatnia odpowiedź ma operator AND, ale z kiepskimi warunkami. Warunek liczba <= -200 nie spełnia wymagań, bo nie bierze pod uwagę liczb w przedziale od -200 do -100, tylko te mniejsze niż -200. Dlatego takie wyrażenie nie zadziała jak trzeba i nie pozwoli na właściwe przetwarzanie liczb w wymaganym zakresie.

Pytanie 8

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

A. <script>przyklad.js</script>
B. <script link="przyklad.js"></script>
C. <script src="przyklad.js"></script>
D. <link rel="script" href="przyklad.js">
No, odpowiedzi bez atrybutu 'src' są nie na miejscu, bo nie spełniają standardów HTML dołączania skryptów. W pierwszej odpowiedzi, w <script>przyklad.js</script>, użycie tego zapisu jest błędne, bo tag <script> musi mieć 'src', żeby pokazać, gdzie skrypt się znajduje. Po prostu dodanie samej nazwy pliku w środku znacznika nic nie zdziała, bo przeglądarka go nie załaduje. W drugiej odpowiedzi, <script link="przyklad.js"></script>, to też nie jest zgodne z HTML, bo 'link' nie istnieje w kontekście skryptów; powinno być tylko 'src'. Odpowiedź <link rel="script" href="przyklad.js"> jest całkiem myląca, bo <link> zazwyczaj służy do CSS, a nie do JavaScriptu. Nawet jeśli 'rel' można użyć, to nie ma sensu w kontekście skryptów JS. To może prowadzić do tego, że deweloperzy nie zrozumieją, jak poprawnie dodawać zasoby do HTML-a, a to może w przyszłości rodzić problemy z wydajnością i działaniem strony. Zrozumienie i stosowanie standardów HTML jest mega ważne przy projektach webowych, bo wpływa na jakość kodu i jego przyszłą obsługę.

Pytanie 9

Która z komend w języku JavaScript pozwala na zmianę koloru tekstu na niebieski w akapicie określonym w pliku HTML?

A. document.getElementById("jeden").style.background-color = "blue";
B. document.getElementById("jeden").color = "blue";
C. document.getElementById("jeden").style.color = "blue";
D. document.getElementById("jeden").background-color = "blue";
Twoja odpowiedź document.getElementById("jeden").style.color = "blue" jest jak najbardziej trafna. Tu wykorzystujesz metodę document.getElementById, co pozwala na dotarcie do konkretnego elementu HTML, który ma identyfikator "jeden". To akurat odnosi się do tego akapitu <p id="jeden">. Później, używając właściwości style.color, zmieniasz kolor tekstu tego elementu na niebieski. To całkiem standardowy sposób, żeby dynamicznie zmieniać style CSS za pomocą JavaScript. W interaktywnych aplikacjach internetowych tak się często robi, bo zmiany kolorów na stronie są potrzebne, kiedy użytkownik klika w różne rzeczy. Na przykład, w takich aplikacjach zmiany kolorów elementów w odpowiedzi na działania użytkowników są mega ważne. Właściwie, korzystanie z metod DOM (Document Object Model) w taki sposób jest kluczowe dla tworzenia interaktywnych i responsywnych interfejsów, co jest bardzo istotne przy budowaniu stron internetowych.

Pytanie 10

W JavaScript metoda getElementById odnosi się do

A. znacznika HTML o wskazanym id
B. zmiennej numerycznej
C. znacznika HTML o podanej nazwie klasy
D. klasy zdefiniowanej w CSS
Metoda getElementById w JavaScript jest kluczowym narzędziem do interakcji z modelowaniem DOM (Document Object Model). Służy do uzyskiwania dostępu do pojedynczego elementu HTML na podstawie jego atrybutu id, co jest zgodne z zasadą unikalności identyfikatorów w dokumencie HTML. Dzięki temu programiści mogą stosunkowo łatwo manipulować pojedynczymi elementami, co jest istotne w dynamicznych aplikacjach internetowych. Przykładem zastosowania tej metody może być zmiana tekstu w elemencie <h1>, gdzie używamy getElementById('myHeader').innerHTML = 'Nowy nagłówek';. Zgodnie z dobrymi praktykami, powinno się unikać używania zduplikowanych id w dokumencie, aby zapewnić, że metoda ta zawsze zwraca jeden, a nie wiele elementów. Warto również pamiętać, że w przypadku braku elementu o podanym id, metoda zwróci null, co powinno być uwzględnione w logice aplikacji, aby uniknąć błędów. Użycie tej metody jest standardem w programowaniu JavaScript i stanowi fundament dla wielu bardziej zaawansowanych technik manipulacji DOM.

Pytanie 11

Jak nazywa się metoda, która pozwala na nawiązanie asynchronicznego połączenia klienta z serwerem oraz umożliwia wymianę danych bez konieczności przeładowania całej strony WWW?

A. AJAX
B. VBScript
C. XML
D. PHP
Wybór odpowiedzi nieprawidłowych, takich jak PHP, XML czy VBScript, wskazuje na częste nieporozumienia dotyczące funkcji oraz zastosowania tych technologii w kontekście komunikacji klient-serwer. PHP to język skryptowy wykorzystywany głównie do generowania dynamicznej treści na serwerze. Chociaż PHP może być używane do obsługi żądań z AJAX, samo w sobie nie zapewnia asynchroniczności ani nie umożliwia komunikacji bez przeładowania strony. XML, mimo że jest formatem danych, nie jest techniką komunikacyjną. Może być wykorzystywane w AJAX jako format przesyłania danych, ale nie jest to jego główne zastosowanie. VBScript to język skryptowy, który jest przestarzały i nie jest odpowiedni do nowoczesnych aplikacji internetowych. Wybierając te odpowiedzi, można popaść w błąd, sądząc, że różne technologie mają podobne zastosowania, co prowadzi do nieporozumień dotyczących struktury aplikacji internetowych. Ważne jest zrozumienie roli, jaką różne technologie odgrywają w architekturze aplikacji, aby właściwie wykorzystywać ich możliwości w praktyce.

Pytanie 12

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. D.
C. B.
D. A.
Dobra robota! W JavaScript, aby wyświetlić okno, w którym użytkownik może wpisać swoje kwalifikacje, najlepiej użyć funkcji `prompt`. Ta funkcja wyświetla okienko, w które można coś wpisać, a to co wprowadzisz, zostaje zwrócone. Potem, żeby pokazać te dane na stronie, używamy funkcji `document.write`. Dzięki temu możemy dynamicznie dodawać tekst na stronę, co jest super przydatne, gdy chcemy, żeby użytkownik wpisał jakieś informacje, które od razu wyświetlamy. Moim zdaniem, to fajny sposób na interakcję z użytkownikami!

Pytanie 13

W jakim formacie będzie wyświetlana data po uruchomieniu przedstawionego kodu?

<?php
  echo date'l, dS F Y');
?>
A. 10, poniedziałek lipca 2017
B. Poniedziałek, 10 lipca 2017
C. Poniedziałek, 10th lipca 17
D. Poniedziałek, 10th lipca 2017
Pierwsza z błędnych odpowiedzi sugeruje, że data zostanie wyświetlona jako 'Monday, 10 July 2017'. Problem polega na tym, że brak suffixu 'th' w przypadku dnia 10 jest niewłaściwy według standardowego angielskiego zapisu dat. W kontekście drugiej odpowiedzi, '10, Monday July 2017', należy zauważyć, że kolejność elementów jest nieprawidłowa. W angielskim zapisie dat i zgodnie z konwencjami formatowania, najpierw występuje nazwa dnia, następnie dzień miesiąca, a później miesiąc i rok. Co więcej, brak przecinka po dniu miesiąca także wpływa na poprawność tej formy. Trzecia odpowiedź, 'Monday, 10th July 17', jest błędna z powodu nieprawidłowego skrótu roku; w standardowym zapisie dat w formalnym kontekście powinno się używać pełnego roku, czyli '2017', a nie jego skrótu. Zatem wszystkie te odpowiedzi są niepoprawne, ponieważ nie spełniają standardowych zasad formatowania dat w języku angielskim, co jest kluczowe dla zachowania jasności i poprawności w komunikacji.

Pytanie 14

W języku skryptowym JavaScript operatory: || oraz && należą do grupy operatorów

A. przypisania.
B. bitowych.
C. arytmetycznych.
D. logicznych.
Operatory || oraz && w JavaScript to klasyczne operatory logiczne. Działają na wartościach, które można zinterpretować jako prawdę lub fałsz (tzw. wartości truthy i falsy) i zwracają wynik wyrażenia logicznego. && oznacza „i” logiczne – całe wyrażenie jest prawdziwe tylko wtedy, gdy oba operandy są traktowane jako prawdziwe. || oznacza „lub” logiczne – wystarczy, że jeden z operandów jest prawdziwy, żeby całe wyrażenie było uznane za prawdę. W praktyce bardzo często wykorzystuje się je w instrukcjach warunkowych, np.: if (isLoggedIn && isAdmin) { … } albo if (isMobile || isTablet) { … }. W JavaScript te operatory mają jeszcze jedną, moim zdaniem bardzo przydatną cechę: nie zwracają po prostu true/false, tylko konkretną wartość jednego z operandów. Na przykład: const name = userName || "Gość"; – jeśli userName jest wartością „falsy” (np. pusty string, null, undefined), to do name trafi "Gość". To jest tzw. krótkie spięcie (short-circuit evaluation): przy operatorze &&, jeśli pierwszy operand jest falsy, drugi nie jest już w ogóle obliczany; przy ||, jeśli pierwszy jest truthy, drugi też nie jest sprawdzany. W dobrych praktykach front-endu wykorzystuje się to do prostego ustawiania wartości domyślnych, zabezpieczania wywołań funkcji (np. callback && callback()) oraz budowania bardziej czytelnych warunków. Warto też pamiętać o różnicy między operatorami logicznymi (&&, ||, !) a porównania (===, !==), bo to są różne grupy operatorów, chociaż często używa się ich razem w tych samych warunkach. Z mojego doświadczenia, świadome używanie tych operatorów logicznych bardzo upraszcza kod i zmniejsza liczbę if-ów rozrzuconych po skryptach.

Pytanie 15

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

A. potęgi liczby
B. wartości przybliżonej liczby
C. pierwiastka kwadratowego liczby
D. wartości bezwzględnej liczby
Wybierając odpowiedzi, które nie są zgodne z funkcją Math.pow(), można popełnić pewne typowe błędy myślowe. Odpowiedź dotycząca wartości bezwzględnej liczby nie ma związku z działania funkcji Math.pow(). Funkcja ta nie jest zaprojektowana do obliczania wartości bezwzględnej, co jest zadaniem funkcji Math.abs(). Wartość bezwzględna to odległość liczby od zera na osi liczbowej, a obliczenia potęgowania nie mają tutaj zastosowania. Z kolei pierwiastek kwadratowy liczy się zupełnie inaczej. Aby obliczyć pierwiastek kwadratowy z liczby, należy użyć funkcji Math.sqrt(), która zwraca liczbę, która podniesiona do kwadratu daje oryginalną liczbę. Zastosowanie Math.pow() do wyznaczenia pierwiastka kwadratowego, na przykład Math.pow(9, 0.5), daje prawidłowy wynik, ale jest mniej klarowne i mniej wydajne niż użycie dedykowanej funkcji. Ostatnia opcja, dotycząca wartości przybliżonej liczby, również jest błędna, ponieważ Math.pow() nie służy do przybliżania wartości, a jedynie do podnoszenia jej do odpowiedniej potęgi. Ważne jest, aby zrozumieć, jakie funkcje są dostępne w JavaScript i jak mają być stosowane w odpowiednich kontekstach, aby uniknąć nieporozumień oraz poprawić czytelność i efektywność kodu w projektach programistycznych.

Pytanie 16

W efekcie wykonania przedstawionego w ramce kodu JavaScript, zmienna x jest równa

Ilustracja do pytania
A. 10 i zostanie wypisana w głównym oknie przeglądarki internetowej.
B. 11 i zostanie wypisana w konsoli przeglądarki internetowej.
C. 11 i zostanie wypisana w oknie popup.
D. 10 i zostanie wypisana w dokumencie HTML.
Kod w ramce to prosty przykład operacji na zmiennej i użycia konsoli w JavaScript: <script> var x = 10; x++; console.log(x); </script> Najpierw deklarowana jest zmienna `x` z użyciem słowa kluczowego `var` i przypisana jest do niej wartość 10. Następnie operator `x++` to tzw. inkrementacja postfiksowa – zwiększa wartość zmiennej `x` o 1. Po wykonaniu tej instrukcji `x` nie jest już równe 10, tylko 11. Ostatnia linia `console.log(x);` wypisuje aktualną wartość zmiennej do konsoli deweloperskiej przeglądarki, a nie do okna strony czy do popupu. Z mojego doświadczenia w pracy z JavaScript, `console.log()` to podstawowe narzędzie debugowania. W praktyce, gdy testujesz np. działanie pętli, obsługę formularzy, komunikację AJAX czy manipulację DOM, bardzo często wypisujesz dane właśnie do konsoli, żeby nie zaśmiecać interfejsu użytkownika. To jest zgodne z dobrymi praktykami front-endu: logi techniczne trafiają do konsoli, a nie do użytkownika końcowego. Warto też zauważyć różnicę między `x++` i `++x`. W tym konkretnym kodzie nie ma znaczenia, bo wartość jest tylko zwiększana i potem logowana, ale w wyrażeniach z przypisaniem kolejność ma już znaczenie. Operator `++` jest typowym elementem składni wielu języków (C, C++, Java, JavaScript), więc dobrze go rozumieć. W nowoczesnym kodzie częściej używa się `let` lub `const` zamiast `var`, ale mechanizm inkrementacji i logowania do konsoli pozostaje taki sam. Podsumowując: po inkrementacji `x` ma wartość 11 i ta wartość jest wyświetlana w konsoli przeglądarki przez `console.log()` – dokładnie tak, jak wskazuje poprawna odpowiedź.

Pytanie 17

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

A. Python
B. Perl
C. PHP
D. JavaScript
JavaScript to język programowania, który został stworzony z myślą o dynamicznym tworzeniu treści i interakcji w przeglądarkach internetowych. Umożliwia on programistom wykonywanie skryptów bezpośrednio na stronie internetowej, co pozwala na tworzenie responsywnych interfejsów użytkownika oraz interakcji z elementami HTML i CSS. JavaScript jest językiem skryptowym, który obsługuje wiele nowoczesnych technologii webowych, takich jak AJAX, co umożliwia asynchroniczne ładowanie danych bez przeładowania całej strony. Dzięki wykorzystaniu JavaScriptu, programiści mogą implementować różnorodne efekty wizualne, animacje oraz walidację formularzy w czasie rzeczywistym. Język ten jest wspierany przez wszystkie popularne przeglądarki internetowe i stał się standardem de facto dla skryptów po stronie klienta. Przykładowo, większość aplikacji webowych, takich jak Gmail czy Facebook, korzysta z JavaScriptu do poprawy doświadczeń użytkowników. Warto również zaznaczyć, że JavaScript jest kluczowym elementem ekosystemu programistycznego, łączącym inne technologie, takie jak HTML i CSS, co czyni go niezwykle wszechstronnym narzędziem w codziennej pracy programistów.

Pytanie 18

W języku JavaScript, aby uzyskać podciąg tekstu pomiędzy wskazanymi indeksami, należy skorzystać z metody

A. slice()
B. trim()
C. replace()
D. concat()
Wybór innych metod do manipulacji napisami może wynikać z nieporozumienia dotyczącego ich funkcji. Metoda trim() służy do usuwania białych znaków z początku i końca napisu, co jest przydatne w kontekście walidacji danych wejściowych, ale nie pozwala na wydzielanie fragmentów napisu. Z kolei concat() jest zarezerwowana do łączenia dwóch lub więcej napisów w jeden, co również nie ma związku z wydzielaniem fragmentów. Użytkownicy często mylą concat() z slice(), błędnie sądząc, że obie metody operują na podobnych zasadach, gdyż obydwie dotyczą manipulacji napisami, jednak ich funkcjonalność jest całkowicie różna. Metoda replace() pozwala na zamianę określonych fragmentów tekstu na inne, co jest przydatne w kontekście przetwarzania danych, jednak również nie odpowiada na pytanie o wydzielanie segmentów. Typowe błędy w myśleniu na ten temat mogą wynikać z niepełnego zrozumienia celów tych metod oraz ich zastosowania w praktyce. Aby uniknąć takich nieporozumień, warto zwrócić uwagę na dokumentację JavaScript oraz praktykować ich zastosowanie w różnych scenariuszach, co z pewnością pomoże w zrozumieniu różnicy między tymi metodami.

Pytanie 19

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

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

Pytanie 20

Język JavaScript wspiera

A. klasy abstrakcyjne
B. obiekty DOM
C. funkcje wirtualne
D. wysyłanie ciasteczek z identycznymi informacjami do wielu klientów witryny
Wybór klas abstrakcyjnych jako odpowiedzi na pytanie o możliwości JavaScript opiera się na mylnym przekonaniu o paradygmacie programowania obiektowego. W przeciwieństwie do języków takich jak Java, JavaScript nie wspiera klasycznych klas abstrakcyjnych. W JavaScript mamy do czynienia z prototypowym dziedziczeniem, a nie z hierarchicznymi klasami. Obiekty mogą być tworzone na podstawie prototypów, co oznacza, że nie ma potrzeby korzystania z klas abstrakcyjnych. W kontekście funkcji wirtualnych, również istnieje nieporozumienie. JavaScript nie używa tego pojęcia, ponieważ mechanizm dziedziczenia oparty na prototypach nie wymaga takiej funkcjonalności. Ponadto, odpowiedzi dotyczące wysyłania ciastek do wielu klientów są mylące, ponieważ ciasteczka są przypisane do domeny i nie istnieje możliwość ich wysyłania do wielu klientów na raz. Ciasteczka są przesyłane w nagłówkach HTTP, a ich działanie opiera się na współpracy między klientem a serwerem. Te błędne założenia mogą prowadzić do przekłamań w projektowaniu aplikacji webowych, gdzie zrozumienie podstawowych mechanizmów JavaScript oraz ich właściwości jest kluczowe dla efektywnego i wydajnego tworzenia stron internetowych. Zrozumienie różnic między podejściami obiektowymi w różnych językach jest istotne dla programistów, aby uniknąć pułapek myślowych oraz błędnych kierunków w kodowaniu.

Pytanie 21

W podanym kodzie JavaScript ponumerowano linie dla ułatwienia. W programie występuje błąd, ponieważ po wykonaniu żadna wiadomość nie jest wyświetlana. Aby usunąć ten błąd, należy

1. if (a < b)
2. document.write(a);
3. document.write(" jest mniejsze");
4. else
5. document.write(b);
6. document.write(" jest mniejsze");
A. umieścić znaki $ przed nazwami zmiennych
B. dodać nawiasy klamrowe w sekcjach if oraz else
C. w liniach 3 i 6 zamienić znaki cudzysłowu na apostrof, np. ' jest mniejsze'
D. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowach
Wstawienie nawiasów klamrowych do sekcji 'if' oraz 'else' jest kluczowe dla prawidłowego działania kodu w JavaScript. Kiedy nie używamy nawiasów klamrowych, język domyślnie interpretuje tylko jedną linię jako część bloku 'if' lub 'else'. W sytuacji, gdy mamy więcej niż jedną operację do wykonania w ramach tego samego warunku, brak nawiasów prowadzi do błędów wykonania. Przykład: jeśli chcemy wyświetlić komunikat oraz wartość zmiennej 'a', musimy objąć te operacje nawiasami klamrowymi. Warto również pamiętać, że korzystanie z nawiasów klamrowych zwiększa czytelność kodu, co jest zgodne z najlepszymi praktykami programistycznymi. Stosowanie tej zasady pozwala unikać niejednoznaczności i potencjalnych błędów w logicznych blokach kodu. Dodatkowo, pomocne jest testowanie kodu w środowiskach, które wyłapują błędy syntaktyczne, co ułatwia wczesne wykrywanie problemów.

Pytanie 22

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

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

Pytanie 23

Fragment kodu HTML z JavaScript spowoduje, że po kliknięciu przycisku

<img src="obraz1.png">
<img src="obraz2.png" id="id1">
<button onclick="document.getElementById('id1').style.display='none'">Przycisk</button>
A. obraz1.png zastąpi obraz2.png
B. obraz1.png zostanie schowany
C. obraz2.png zastąpi obraz1.png
D. obraz2.png zostanie schowany
Poprawna odpowiedź dotyczy ukrycia obrazu obraz2.png poprzez jego identyfikację za pomocą unikalnego atrybutu id. W kodzie HTML każdy element może być zidentyfikowany przez atrybut id, co pozwala na bezpośrednią manipulację jego własnościami w JavaScript. Funkcja document.getElementById służy do wyszukiwania elementu o podanym id w strukturze DOM dokumentu. Następnie, używając stylowania CSS poprzez właściwość style, możliwe jest zmienienie wartości display na 'none', co skutkuje ukryciem elementu w przeglądarce. Taka technika jest często wykorzystywana w interaktywnych aplikacjach webowych, gdzie użytkownik musi mieć możliwość dynamicznego manipulowania elementami interfejsu. Praktyka ta jest zgodna ze standardami W3C i pozwala na tworzenie responsywnych, przyjaznych użytkownikowi aplikacji. Dobrym przykładem zastosowania jest tworzenie galeria obrazów, gdzie tylko wybrane zdjęcia są wyświetlane w danym momencie. Taka funkcjonalność sprzyja również poprawie czytelności strony, ponieważ użytkownik może ukrywać i odkrywać treści według własnych potrzeb. Zrozumienie tego mechanizmu jest kluczowe dla każdego, kto chce budować nowoczesne strony internetowe z użyciem HTML, CSS i JavaScript.

Pytanie 24

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

A. zwrócić wartość przeciwną do f
B. zwrócić wartość bezwzględną z f
C. wypisać wartość przeciwną do f
D. wypisać 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 25

W języku JavaScript należy sformułować warunek, który będzie prawdziwy, gdy zmienna a będzie jakąkolwiek liczbą naturalną dodatnią (również nie zerową) lub gdy zmienna b będzie liczbą mieszczącą się w przedziale od 10 do 100, włącznie. Wyrażenie logiczne zastosowane w tym warunku powinno mieć formę

A. (a>0) || ((b>=10) || (b<=100))
B. (a>0) && ((b>=10) || (b<=100))
C. (a>0) || ((b>=10) && (b<=100))
D. (a>0) && ((b>=10) && (b<=100))
Analizując inne odpowiedzi, widać, że zawierają one różne błędne koncepcje w interpretacji warunków logicznych. W przypadku (a>0) && ((b>=10) || (b<=100)), użycie operatora || w drugiej części powoduje, że warunek dla b zawsze będzie spełniony, niezależnie od wartości b, co jest niezgodne z założeniem, że b powinno znajdować się w przedziale od 10 do 100. Takie błędne zrozumienie operatorów logicznych prowadzi do niepoprawnych interpretacji. W odpowiedzi (a>0) || ((b>=10) || (b<=100)), ponownie użycie operatora || w drugiej części sprawia, że warunek b również nie działa zgodnie z założeniem, ponieważ b może być każdą liczbą, co nie spełnia wymogu ograniczenia do przedziału 10-100. Kolejna odpowiedź, (a>0) && ((b>=10) && (b<=100)), wprowadza błędny wniosek, że obie części muszą być spełnione jednocześnie. Takie podejście jest zrozumiałe, ale nie odpowiada na pierwotne założenie, że wystarczy, aby jeden z warunków był spełniony. Rozumienie logiki warunkowej w programowaniu jest kluczowe dla tworzenia efektywnych algorytmów i unikania problemów z bezpieczeństwem danych. Dlatego ważne jest, aby dokładnie analizować składnię i semantykę wyrażeń logicznych, co przekłada się na jakość kodu i jego łatwość w utrzymaniu.

Pytanie 26

Fragment skryptu w języku JavaScript umieszczony w ramce

t = "Ala ma kota.";
s = t.length;
A. przypisze zmiennej s zmienną t
B. wyświetli długość tekstu z zmiennej t
C. przypisze zmiennej s długość tekstu z zmiennej t
D. przypisze zmiennej s część tekstu z zmiennej t, o długości określonej przez zmienną length
Błędne przypuszczenie że kod wyświetli długość napisu ze zmiennej t wynika z niezrozumienia różnicy między przypisaniem a wyświetleniem wartości. W podanym przykładzie zmienna s przechowuje długość napisu ale kod nie zawiera żadnej instrukcji wyświetlenia tej wartości. W JavaScript do wyświetlenia w konsoli wymagane jest użycie funkcji console.log co nie zostało tu zawarte. Następnie błędna odpowiedź dotycząca przypisania fragmentu napisu wskazuje na niezrozumienie zastosowania właściwości length która zwraca całkowitą długość łańcucha a nie jego część. Aby uzyskać fragment łańcucha należałoby użyć metody substring lub slice które tej funkcji tutaj nie ma. Ostatnia błędna odpowiedź sugerująca że zmienna s przechowuje cały napis z t wykazuje brak zrozumienia samego przypisania w kontekście obiektów stringowych w JavaScript. Gdyby celem było przypisanie całego łańcucha należałoby użyć samego t bez length. Zrozumienie różnic w działaniach właściwości i metod w JavaScript jest kluczowe w skutecznym programowaniu i unikania błędów logicznych które mogą prowadzić do nieoczekiwanych rezultatów w działaniu aplikacji.

Pytanie 27

Liczba 0x142, przedstawiona w skrypcie JavaScript, jest zapisywana w postaci

A. szesnastkowej
B. dziesiętnej
C. dwójkowej
D. ósemkowej
Odpowiedzi sugerujące, że liczba 0x142 jest zapisana w systemie dziesiętnym, dwójkowym lub ósemkowym, są błędne z kilku powodów. System dziesiętny, bazujący na podstawie 10, używa cyfr od 0 do 9. Gdyby 0x142 byłoby w systemie dziesiętnym, nie miałby prefiksu '0x', a jego wartość wynosiłaby 322, co jest całkowicie inną reprezentacją. Z kolei system dwójkowy, znany również jako binarny, używa tylko dwóch cyfr: 0 i 1. Liczba 0x142 w systemie binarnym wynosi 101000010, co jest zupełnie inną formą niż przedstawienie szesnastkowe. Na koniec, system ósemkowy, mający podstawę 8, obejmuje cyfry od 0 do 7. Aby wyrazić 0x142 w systemie ósemkowym, należałoby najpierw przekonwertować ją na dziesiętną, co dałoby 322, a następnie na ósemkowy, co dawałoby 502. Tak więc żadna z tych odpowiedzi nie jest poprawna, ponieważ 0x142 jest jednoznacznie zapisane w systemie szesnastkowym.

Pytanie 28

Wskaż, który z poniższych jest poprawnym zapisem zmiennej w języku JavaScript.

A. var $name@ = 10;
B. let variableName = 10;
C. var 2nameVar = 10;
D. const var-name = 10;
W JavaScript istnieje kilka zasad dotyczących nazywania zmiennych, które są kluczowe dla poprawnego działania kodu. Zmienna nie może zaczynać się od cyfry, co jest błędem w przypadku zapisu <code>var 2nameVar = 10;</code>. Numer na początku nazwy zmiennej jest zabroniony, ponieważ może prowadzić do niejednoznaczności w rozumieniu kodu przez interpreter. Z kolei <code>const var-name = 10;</code> jest błędny z powodu użycia znaku minus, który nie jest dozwolony w nazwach zmiennych. Znak minus jest interpretowany jako operator, co powoduje, że taki zapis jest nieprawidłowy. Kolejna niepoprawna opcja to <code>var $name@ = 10;</code>. Chociaż znak dolara jest dozwolony w nazwach zmiennych, to znak <code>@</code> już nie. Użycie niedozwolonych znaków w nazwach zmiennych jest częstym błędem początkujących programistów, którzy nie są zaznajomieni z pełnym zakresem dozwolonych symboli. Moim zdaniem, zrozumienie tych zasad jest kluczowe, aby uniknąć typowych pułapek w programowaniu. Dodatkowo, stosowanie się do standardowych konwencji nazewnictwa, takich jak camelCase, poprawia czytelność i zrozumiałość kodu, co jest istotne w pracy zespołowej i podczas utrzymania większych projektów. Warto pamiętać, że przestrzeganie dobrych praktyk programistycznych nie tylko zapobiega błędom, ale również ułatwia rozwój i testowanie aplikacji.

Pytanie 29

Fragment kodu w języku JavaScript realizujący dodawanie dwóch liczb ma poniższą postać. Aby dodawanie wykonane było po kliknięciu przycisku o nazwie "dodaj", należy w wykropkowane miejsce wstawić

Podaj pierwszą liczbę: <input type="text" name="liczba1" />
Podaj drugą liczbę: <input type="text" name="liczba2" />
….
<script type=text/javascript>
function dodaj()
{
    // ta funkcja realizuje dodawanie i podaje jego wynik
}
</script>
A. <button onclick="return oblicz()">dodaj</button>
B. <button onclick="return dodaj()">dodaj</button>
C. <button onselect="return dodaj()">oblicz</button>
D. <button onselect="return dodaj()">dodaj</button>
Gratulacje, wybrałeś poprawną odpowiedź. Przycisk w JavaScript jest aktywowany poprzez zdarzenie onclick, które jest wyzwalane po kliknięciu przycisku. Właściwość onclick jest jednym z wielu zdarzeń w JavaScript, które są używane do obsługi interakcji użytkownika. Kiedy użytkownik kliknie przycisk, zdarzenie onclick jest wywoływane i kod zawarty w tym zdarzeniu jest wykonany. W tym przypadku, kod to 'return dodaj()', co oznacza, że funkcja 'dodaj' jest wywoływana. Ta funkcja została zdefiniowana w skrypcie JavaScript i realizuje dodawanie dwóch liczb. Zdarzenie onclick jest często używane w praktycznych zastosowaniach, takich jak przyciski subskrybcji, przyciski do logowania czy przyciski do przesyłania formularzy. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają utrzymanie interakcji użytkownika w kodzie JavaScript zamiast HTML.

Pytanie 30

W języku JavaScript zamieszczony poniżej fragment funkcji ma na celu

wynik = 0;
for (i = 0; i < tab.length; i++) {
wynik += tab[i];
}
A. dodanie stałej wartości do każdego elementu tablicy
B. wprowadzenie do każdego elementu tablicy bieżącej wartości zmiennej i
C. policzenie sumy wszystkich elementów tablicy
D. wyświetlenie wszystkich elementów tablicy
Rozważając różne odpowiedzi, można dostrzec pewne błędne założenia dotyczące funkcji pętli w analizowanym kodzie JavaScript. Pierwsza z opcji zakłada, że celem kodu jest wyświetlenie wszystkich elementów tablicy. W rzeczywistości jednak kod nie zawiera żadnych instrukcji, takich jak console.log(), które pozwoliłyby na wyświetlanie wartości elementów tablicy. To powszechny błąd polegający na myleniu iteracji pętli z operacjami wejścia/wyjścia. Kolejna możliwość sugeruje dodanie do każdego elementu tablicy stałej wartości. Aby osiągnąć taki efekt, kod musiałby bezpośrednio modyfikować wartości w tablicy, co wymagałoby przypisania nowych wartości do elementów tablicy. W przedstawionym kodzie nie ma jednak żadnej manipulacji wartościami tablicy, co wskazuje na niewłaściwe zrozumienie celu operacji wykonywanych na tablicach. Ostatnia możliwość zakłada, że każdemu elementowi tablicy przypisywana jest aktualna wartość zmiennej i. Taki efekt wymagałby przypisania wartości i do elementów tablicy, co nie ma miejsca w przedstawionym fragmencie kodu. Jest to często spotykany błąd polegający na myleniu indeksu pętli z operacjami przypisania. Każda z tych odpowiedzi opiera się na niepoprawnym zrozumieniu mechanizmów iteracji i operacji na tablicach w językach programowania takich jak JavaScript co może prowadzić do błędnych wniosków dotyczących działania kodu.

Pytanie 31

Jakie wartości zostaną wypisane przez funkcję wypisz(2) zaimplementowaną w JavaScript?

function wypisz(a)
{
    for (var i=1; i<6; i++)
    {
        a++;
        if ((a%2==0)|| (a%3==0))
        document.write(a+" " );
    }
}
A. 3 4 6 8
B. 2 3 4 6
C. 6
D. 3 4 6
Jak analizujemy tę funkcję wypisz, to ważne jest, aby zrozumieć, jak pętla for działa oraz jakie liczby spełniają warunki w if. W przypadku, gdy ktoś myśli, że funkcja wypisze tylko 6, to musi wiedzieć, że poprawna odpowiedź 3 to tak naprawdę cały zestaw liczb 3, 4 i 6. Wypisanie tylko 6 to błąd, bo musimy uwzględnić inne wartości, które też spełniają warunek. Opcja, że ma być wypisane 3, 4, 6 i 8, wydaje się mylna, bo 8 wcale się nie pojawia w pętli, więc ten warunek a%2==0 || a%3==0 nie ma tu zastosowania. Podobnie, myślenie, że 2, 3, 4, 6 będą wypisane, to fałsz, bo 2 nigdy nie jest sprawdzane. Na początku a jest równe 2, a po pierwszym obiegu pętli, a++ daje 3, która spełnia warunek, ale 2 zostaje zignorowane w tej kolejności. To jest prosty błąd wynikający z nieuważności, bo trzeba zwrócić uwagę, że inkrementacja dzieje się przed sprawdzeniem условия w if. Warto to zrozumieć, bo to daje solidne podstawy do lepszego programowania i umiejętności pisania bardziej skomplikowanego kodu JavaScript.

Pytanie 32

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

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

Pytanie 33

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

A. for(i=2;i<12;i++) {i++; document.write(i);}
B. for(i=2;i<12;i+=2) {document.write(i);}
C. for(i=2;i<=12;i++) {i=i+2; 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

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

var imiona = ["Anna", "Jakub", "Iwona", "Krzysztof"];
A. tablicy
B. klasy
C. zbioru
D. obiektu
Definicja przedstawiona na obrazku odpowiada tablicy w języku JavaScript. Tablice w JavaScript są typem obiektu, który pozwala na przechowywanie wielu wartości w jednej zmiennej. W tym przypadku zmienna imiona zawiera listę stringów reprezentujących imiona. Tablice w JavaScript są dynamiczne co oznacza że ich rozmiar można zmieniać podczas działania programu. Dostęp do poszczególnych elementów tablicy uzyskuje się za pomocą indeksów które zaczynają się od zera. Na przykład pierwszy element tej tablicy to imiona[0] czyli Anna. JavaScript oferuje wiele metod do manipulacji tablicami takich jak push do dodawania elementów na końcu tablicy pop do usuwania ostatniego elementu czy map do tworzenia nowej tablicy na podstawie istniejącej poprzez zastosowanie funkcji do każdego elementu. Zrozumienie działania tablic jest kluczowe dla efektywnego programowania w JavaScript ponieważ są one podstawowym narzędziem do przechowywania i zarządzania danymi.

Pytanie 35

W języku JavaScript funkcja document.getElementById() ma na celu

A. umieścić tekst o treści 'id' na stronie internetowej
B. zwrócić odnośnik do pierwszego elementu HTML o określonym id
C. sprawdzić poprawność formularza z identyfikatorem id
D. pobrać dane z pola formularza i zapisać je do zmiennej id
Metoda document.getElementById() jest jedną z kluczowych funkcji w JavaScript, używaną do interakcji z elementami HTML w dokumentach DOM (Document Object Model). Jej głównym zadaniem jest zwrócenie odniesienia do pierwszego elementu w dokumencie HTML, który posiada określony atrybut id. Atrybut ten powinien być unikalny w obrębie dokumentu, co pozwala na jednoznaczną identyfikację elementu. Przykładowo, jeśli mamy element <div id='myElement'>Witaj świecie</div>, to użycie document.getElementById('myElement') zwróci nam ten konkretny element. Można następnie manipulować tym elementem, zmieniając jego zawartość, styl lub atrybuty, co jest nieocenione w tworzeniu dynamicznych aplikacji webowych. Warto zaznaczyć, że ta metoda jest częścią specyfikacji DOM Level 1 i jest szeroko wspierana przez wszystkie nowoczesne przeglądarki. W kontekście optymalizacji wydajności, uzyskiwanie dostępu do elementów za pomocą ich id jest znacznie szybsze i bardziej efektywne niż stosowanie selektorów CSS. W praktyce, użycie tej metody w kodzie JavaScript jest kluczowe dla wielu operacji DOM, co sprawia, że jest to fundament, na którym opiera się wiele aplikacji webowych.

Pytanie 36

Określ wynik wykonania poniższego fragmentu kodu JavaScript.

var akapit = document.createElement("p");
document.body.appendChild(akapit);
A. Usunięcie akapitu z treści strony
B. Dodanie akapitu na samym końcu strony
C. Wstawienie akapitu na początku strony
D. Wyświetlenie okna dialogowego z komunikatem "akapit"
Wybór innej odpowiedzi niż dodanie akapitu na końcu strony może świadczyć o tym, że nie do końca rozumiesz, jak działa manipulacja DOM w JavaScript. Wydaje się, że sądzisz, że kod usuwa akapit, ale tak naprawdę używana jest tylko metoda do tworzenia i dodawania elementów, a usuwanie wymagałoby czegoś innego, jak removeChild czy remove. Również mylenie dodawania elementu na początku strony jest błędne, bo appendChild zawsze dodaje na końcu. Jakbyś chciał dodać na początku, musiałbyś zastosować insertBefore z odniesieniem do pierwszego dziecka. Myślenie, że kod wyświetla okno dialogowe, też nie ma podstaw, bo nie użyto tu żadnej metody dialogowej jak alert czy prompt. Z mojego doświadczenia, takie mylne podejście często wynika z braku praktyki z manipulacją DOM, co jest istotne do prawidłowego stosowania JavaScript w projektach webowych.

Pytanie 37

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

A. umieścić tekst o treści ’id’ na stronie internetowej
B. zweryfikować poprawność formularza o identyfikatorze id
C. pobrać wartości z formularza i przypisać je do zmiennej id
D. zwrócić referencję do pierwszego elementu HTML o wskazanym id
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 38

Na podstawie kodu widocznego na ilustracji można stwierdzić, że

Ilustracja do pytania
A. podano nieprawidłowy argument do funkcji alert.
B. nie zadeklarowano funkcji wyswietlNazwisko.
C. funkcja wyswietlNazwisko(nazwisko) musi być wywołana wewnątrz innej funkcji.
D. nie przypisano wartości do zmiennej nazwisko.
Kod z ilustracji bardzo dobrze pokazuje typowy błąd początkujących w JavaScript: pomylenie deklaracji funkcji i zmiennych z ich użyciem. Przeglądarka zgłasza błąd ReferenceError: nazwisko is not defined, co wyraźnie sugeruje, że problem dotyczy zmiennej, a nie funkcji czy argumentu alert(). Funkcja wyswietlNazwisko(nazwisko) jest poprawnie zdefiniowana: ma słowo kluczowe function, nazwę, parametr w nawiasach i blok w klamrach. Samo istnienie tej definicji powoduje, że przeglądarka wie, czym jest wyswietlNazwisko, więc nie można mówić, że funkcja nie została zadeklarowana. Częstym błędnym skojarzeniem jest też traktowanie nazwiska w wywołaniu wyswietlNazwisko(nazwisko); jakby odnosiło się do tego samego nazwiska z nagłówka funkcji. Tymczasem to są dwie różne rzeczy: parametr funkcji istnieje dopiero wewnątrz funkcji i jest wypełniany wartością przekazaną przy wywołaniu. Jeśli przy wywołaniu podajemy nazwę zmiennej, to ta zmienna musi być wcześniej zdefiniowana w aktualnym zakresie. Tu jej nie ma, więc interpreter się „gubi”. Nie jest też prawdą, że argument do alert() jest nieprawidłowy. Funkcja alert() dostaje zwykły łańcuch znaków zapisany w zmiennej komunikat, a ten łańcuch jest zbudowany z tekstu stałego i parametru nazwisko. Gdyby zmienna nazwisko była poprawnie przekazana, alert działałby dokładnie tak, jak oczekujemy. Tak samo nie ma żadnego wymagania, żeby funkcję wyswietlNazwisko wywoływać tylko wewnątrz innej funkcji. W JavaScript można wywołać funkcję zarówno wprost w skrypcie, jak i z poziomu zdarzenia (onclick, onload itd.) – to kwestia logiki aplikacji, a nie wymóg języka. Kluczowe jest zrozumienie zasięgu zmiennych i tego, że każda użyta nazwa musi mieć wcześniej nadaną wartość, inaczej pojawi się właśnie taki ReferenceError.

Pytanie 39

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

A. If (liczba < 100 || liczba >=200)
B. If (liczba < 100 && liczba <=200)
C. If (liczba > 100 && liczba <=200)
D. If (liczba > 100 || liczba <=200)
Patrząc na błędne podejścia w odpowiedziach, można zauważyć kilka istotnych nieporozumień związanych z operatorami logicznymi i porównawczymi. Na przykład przy 'if (liczba > 100 || liczba <= 200)' użycie operatora '||' (OR) prowadzi do tego, że warunek może być spełniony nawet wtedy, gdy liczba jest poniżej 100. To znaczy, że każda liczba mniejsza niż 100 oraz każda większa niż 200 będzie się kwalifikować, co kompletnie mija się z celem. Podobnie 'if (liczba < 100 || liczba >= 200)' pomija wartości w przedziale od 100 do 200. Tutaj użycie '&&' byłoby kluczowe, bo wymaga spełnienia obu warunków jednocześnie. Trzeba też zauważyć, że 'if (liczba < 100 && liczba <= 200)' wprowadza dodatkowe zamieszanie, bo pierwszy warunek koliduje z drugim, co czyni go logicznie błędnym. Dlatego poprawne formułowanie warunków w JavaScript jest podstawą dla każdego programisty. Jakiekolwiek błędne zrozumienie operatorów może prowadzić do poważnych problemów w działaniu aplikacji, więc warto to dobrze przyswoić.

Pytanie 40

Które zdarzenie umożliwia wykonanie skryptu w języku JavaScript podczas przesyłania formularza HTML oraz kontrolowanie jego wysłania?

A. onSubmit
B. onChange
C. onEnter
D. onClick
Odpowiedź 'onSubmit' jest poprawna, ponieważ to zdarzenie w języku JavaScript jest bezpośrednio związane z wysyłaniem formularzy HTML. Gdy użytkownik klika przycisk wysyłania formularza lub gdy formularz jest wysyłany za pomocą klawisza Enter, zdarzenie 'onSubmit' zostaje wywołane. Dzięki temu można zaimplementować walidację danych wprowadzonych przez użytkownika przed ich przesłaniem do serwera. Na przykład, można sprawdzić, czy wszystkie wymagane pola są wypełnione oraz czy dane są zgodne z określonym formatem, zanim formularz zostanie przesłany. Aby to zrobić, można dodać funkcję JavaScript do atrybutu onsubmit w tagu <form>, co pozwoli na zatrzymanie wysyłania formularza, jeśli warunki walidacji nie są spełnione. Jest to zgodne z dobrymi praktykami w zakresie tworzenia formularzy, które powinny być zarówno funkcjonalne, jak i przyjazne dla użytkownika. Dodatkowo, przy użyciu metody preventDefault() w obiekcie zdarzenia można zablokować domyślną akcję formularza, co daje pełną kontrolę nad procesem wysyłania.