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: 8 grudnia 2025 13:22
  • Data zakończenia: 8 grudnia 2025 14:04

Egzamin zdany!

Wynik: 26/40 punktów (65,0%)

Wymagane minimum: 20 punktów (50%)

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

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

var x = 10;
switch(x) {
    case "10": alert("Test instrukcji switch");
}
A. Wartość zmiennej x nie została zdefiniowana przed instrukcją switch.
B. W instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x.
C. Nie zastosowano instrukcji break.
D. Nie zastosowano wyrażenia default.
Super, twoja odpowiedź jest prawidłowa! Wybierając odpowiedź 'w instrukcji switch w wyrażeniu case nie dostosowano zapisu wartości do typu zmiennej x', zrozumiałeś istotny punkt w porównywaniu wartości w JavaScript. W przeciwieństwie do wielu innych języków, porównania w JavaScript są typowo 'strict comparison'. Oznacza to, że pod uwagę brane są zarówno wartość, jak i typ danych. W naszym przypadku, zmienna x jest liczbą 10, podczas gdy w instrukcji case porównywana jest z ciągiem znaków '10'. Mimo, że obie reprezentują tę samą wartość, są różnymi typami danych. Dlatego też warunek nie jest spełniony i alert nie zostanie wyświetlony. To jest bardzo ważne do zapamiętania podczas pracy z JavaScript, ponieważ może prowadzić do nieoczekiwanych wyników. Pamiętaj zawsze o typach danych podczas korzystania z instrukcji switch i case w JavaScript.

Pytanie 2

Kod JavaScript uruchomiony w wyniku kliknięcia przycisku ma na celu <img id="i1" src="obraz1.gif"> <button onclick="document.getElementById('i1').src='obraz2.gif'"> test</button>

A. zamienić obraz1.gif na obraz2.gif
B. wyświetlić obraz2.gif obok obraz1.gif
C. zmienić styl obrazu o id równym i1
D. ukryć obraz2.gif
Odpowiedź 'zamienić obraz1.gif na obraz2.gif' jest poprawna, ponieważ kod JavaScript w przycisku jest odpowiedzialny za zmianę źródła obrazu. W momencie kliknięcia przycisku, funkcja `document.getElementById('i1').src='obraz2.gif'` przypisuje nowe źródło do elementu o identyfikatorze 'i1', co efektywnie powoduje wyświetlenie obraz2.gif zamiast obraz1.gif. Tego typu manipulacje DOM są powszechnie stosowane w interaktywnych aplikacjach webowych, gdzie użytkownik wchodzi w interakcję z różnymi elementami. Przykładem zastosowania tej techniki może być tworzenie galerii zdjęć, gdzie użytkownik klika na miniaturkę, a główny obrazek zostaje zmieniony na wybrane zdjęcie. Warto również zauważyć, że ta zmiana jest realizowana bez potrzeby reładowania strony, co znacząco poprawia doświadczenie użytkownika. Takie podejście jest zgodne z dobrymi praktykami w zakresie tworzenia dynamicznych interfejsów użytkownika.

Pytanie 3

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

A. var wynik=liczba_max(a,b,c);
B. liczba_max(a,b,c)=wynik;
C. liczba_max(a,b,c,wynik);
D. liczba_max(a,b,c);
Odpowiedź "var wynik=liczba_max(a,b,c);" jest poprawna, ponieważ w ten sposób prawidłowo wywołujemy funkcję liczba_max, przekazując do niej trzy argumenty: a, b oraz c. Funkcja ta ma na celu zwrócenie maksymalnej wartości z przekazanych liczb, więc przypisanie jej wyniku do zmiennej wynik jest logicznym krokiem. W języku JavaScript, operator przypisania (=) pozwala na zdefiniowanie zmiennych, co w tym przypadku oznacza, że zmienna wynik będzie zawierać wartość zwróconą przez funkcję. Wartością tą jest największa liczba spośród a, b i c. Zastosowanie takiego podejścia jest zgodne z koncepcją programowania funkcjonalnego, gdzie funkcje są traktowane jako „pierwszej klasy obywateli”, co oznacza, że można je przypisywać do zmiennych. Dobrą praktyką w programowaniu jest również używanie czytelnych nazw zmiennych oraz funkcji, co ułatwia zrozumienie kodu przez inne osoby. Dodatkowo, warto zwrócić uwagę na typy danych przekazywanych do funkcji, aby uniknąć nieprzewidzianych błędów podczas obliczeń.

Pytanie 4

Wskaż warunek w języku JavaScript, który ma na celu sprawdzenie, czy przynajmniej jeden z poniższych przypadków jest spełniony: 1) dowolna naturalna liczba a jest liczbą trzycyfrową 2) dowolna liczba całkowita b jest liczbą ujemną

A. ((a>99)||(a<1000))||(b<0)
B. ((a>99)||(a<1000))&&(b<0)
C. ((a>99)&&(a<1000))&&(b<0)
D. ((a>99)&&(a<1000))||(b<0)
Warunek zapisany jako ((a>99)&&(a<1000))||(b<0) jest poprawny, ponieważ sprawdza dwa różne przypadki. Pierwsza część warunku, (a>99)&&(a<1000), zwraca prawdę, gdy a jest liczbą naturalną w zakresie od 100 do 999, co oznacza, że jest to liczba trzycyfrowa. Z kolei druga część, b<0, jest spełniona, gdy b jest liczbą całkowitą mniejszą od zera, co oznacza, że jest to liczba ujemna. Zastosowanie operatora logicznego '||' (OR) pozwala na spełnienie warunku, gdy przynajmniej jeden z dwóch przypadków jest prawdziwy. Użycie operatora '&&' (AND) w pierwszej części jest kluczowe, ponieważ musi być spełniony zarówno warunek większy niż 99, jak i mniejszy niż 1000, co pozwala na precyzyjne określenie, czy a jest liczbą trzycyfrową. Przykładowo, gdy a = 150, a b = -5, cały warunek zwróci prawdę z powodu drugiej części warunku. Na przeciwnym biegunie, jeśli a = 50, a b = 5, warunek zwróci fałsz, ponieważ ani a nie jest trzycyfrowe, ani b nie jest ujemne. Tego rodzaju warunki są powszechnie stosowane w programowaniu, aby weryfikować różne stany i wartości zmiennych w aplikacjach webowych i systemach informatycznych.

Pytanie 5

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

A. operację arytmetyczną na dwóch dodatnich zmiennych liczbowych
B. funkcję parseInt zamiast parseFloat na zmiennej numerycznej
C. operację arytmetyczną, a zawartość zmiennej była tekstem
D. funkcję, która sprawdza długość stringa, a zawartość zmiennej była liczba
W JavaScript, wartość NaN (Not-a-Number) jest wynikiem nieudanej operacji arytmetycznej, szczególnie gdy jedna z operandów jest napisem, a nie liczbą. Przykładem może być sytuacja, gdy próbujemy dodać liczbę do napisu: let result = 5 + 'abc';. W tym przypadku, JavaScript nie może przeprowadzić operacji arytmetycznej na liczbie i napisie, co skutkuje wartością NaN. Konwersja napisu na liczbę w kontekście arytmetyki jest kluczowa; funkcje takie jak parseFloat lub parseInt mogą być użyte do uzyskania liczby z napisu. Dobre praktyki sugerują, aby zawsze sprawdzać typ danych przed wykonaniem operacji arytmetycznych, co można osiągnąć za pomocą operatora typeof lub funkcji Number.isNaN(). W ten sposób unika się nieprzewidzianych rezultatów i poprawia się stabilność kodu. Zrozumienie, jak JavaScript radzi sobie z różnymi typami danych, jest fundamentalne dla każdego programisty, ponieważ błędy związane z typami danych mogą prowadzić do poważnych problemów w aplikacjach.

Pytanie 6

W JavaScript zdarzenie onKeydown zostanie wywołane, gdy klawisz

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

Pytanie 7

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 8

Przedstawiona funkcja napisana w kodzie JavaScript ma na celu:

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

Pytanie 9

Język JavaScript wspiera

A. obiekty DOM
B. funkcje wirtualne
C. klasy abstrakcyjne
D. wysyłanie ciasteczek z identycznymi informacjami do wielu klientów witryny
JavaScript to język skryptowy, który ma wbudowaną obsługę obiektowego modelu dokumentu (DOM), co umożliwia dynamiczne manipulowanie strukturą HTML oraz CSS stron internetowych. Dzięki DOM programiści mogą dodawać, usuwać lub modyfikować elementy na stronie w czasie rzeczywistym, co czyni aplikacje bardziej interaktywnymi. Przykładem może być zmiana tekstu przycisku po jego kliknięciu, co można osiągnąć dzięki metodom takim jak `getElementById` oraz `innerHTML`. JavaScript jest nieodłącznym elementem nowoczesnego podejścia do tworzenia aplikacji webowych, a jego kompatybilność z DOM sprawia, że jest to kluczowa umiejętność dla programistów. Wiedza na temat manipulacji DOM jest fundamentem dla technologii takich jak React czy Angular, które opierają się na zasadach wydajnego zarządzania interfejsem użytkownika przez wirtualny DOM. Współczesne standardy, takie jak ECMAScript, rozwijają możliwości JavaScript, a znajomość DOM jest niezwykle cenna na rynku pracy.

Pytanie 10

Aby sprawdzić, czy kod JavaScript działa poprawnie, należy skorzystać z

A. interpretera PERL
B. kompilatora C++
C. konsoli w przeglądarce internetowej
D. interpretera PHP
Konsola w przeglądarce to świetne narzędzie do sprawdzania i naprawiania kodu JavaScript. Dzięki niej możesz od razu zobaczyć, co działa, a co nie. Na przykład, kiedy wpiszesz `console.log('Hello, World!');`, to od razu zobaczysz wynik w konsoli. To bardzo fajny sposób na szybkie testowanie, bo nie musisz czekać ani niczego dodatkowo uruchamiać. Konsola ma też sporo innych przydatnych funkcji, jak inspekcja obiektów czy monitorowanie zdarzeń, więc naprawdę warto się z nią zaprzyjaźnić. Właściwie, każda popularna przeglądarka, jak Chrome czy Firefox, dodaje różne ciekawe opcje, które pomagają w debugowaniu. Z mojego doświadczenia, korzystanie z konsoli to kluczowy element nauki i pracy z JavaScript.

Pytanie 11

W formularzu wartości z pola input o typie number zostały przypisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w sposób następujący: ```var x = parseInt(a);``` Jakiego typu będzie zmienna x?

A. zmiennoprzecinkowego
B. napisowego
C. liczbowego, całkowitego
D. Nan
Wybór niepoprawnych odpowiedzi wynika z nieporozumienia dotyczącego działania funkcji parseInt oraz typów danych w JavaScript. W pierwszej z niepoprawnych odpowiedzi, Nan oznacza 'Not a Number', który jest zwracany, gdy operacja konwersji na liczbę nie może zostać przeprowadzona. W kontekście zmiennej a, jeśli ta wartość jest poprawnym wejściem z pola input typu number, parseInt nie zwróci NaN, a raczej prawidłową liczbę całkowitą. Kolejna opcja opisuje typ napisowy, co jest sprzeczne z tym, co zapewnia funkcja parseInt, ponieważ zwraca ona wartość liczbową, a nie tekst. Wartości typu string mogą być konwertowane na liczby, ale samo pole input o typie number nie wprowadza napisów, a zatem nie tworzy sytuacji, w której wynik byłby typu string. Ostatnia z błędnych odpowiedzi nawiązuje do zmiennoprzecinkowego typu danych. Chociaż JavaScript obsługuje liczby zmiennoprzecinkowe, funkcja parseInt celowo konwertuje na wartość całkowitą, co wyklucza możliwość uzyskania zmiennoprzecinkowego wyniku. Zrozumienie tych różnic jest istotne dla efektywnego programowania w JavaScript i unikania typowych pułapek związanych z konwersją typów.

Pytanie 12

Jakie dane zostaną wyświetlone po wykonaniu poniższych poleceń? bool gotowe=true; cout<<gotowe;

A. nie
B. tak
C. 0
D. 1
W wyniku wykonania przedstawionych instrukcji, zostanie wypisane "1". Wynika to z faktu, że zmienna typu bool w języku C++ jest reprezentowana jako liczba całkowita, gdzie wartość "true" jest interpretowana jako "1", a "false" jako "0". Kiedy wykonujemy instrukcję z użyciem cout, która jest standardowym strumieniem wyjściowym w C++, zmienna gotowe, która przechowuje wartość true, zostanie przekonwertowana na jej reprezentację liczbową, co skutkuje wypisaniem "1" na ekran. W praktyce, zrozumienie konwersji typów danych w C++ jest kluczowe dla programowania, zwłaszcza w kontekście obliczeń logicznych i kontroli przepływu programu. Standardy C++ określają zasady konwersji typów, co wpływa na optymalizację kodu oraz unikanie błędów w logice programowania, dlatego wiedza na ten temat jest niezbędna dla każdego programisty.

Pytanie 13

Zapis w języku JavaScript:

x = przedmiot.nazwa();
wskazuje, że
A. Zmienna x będzie przechowywać rezultat wykonania metody nazwa.
B. nazwa jest polem w klasie przedmiot.
C. Zmienna x będzie przechowywać rezultat działania funkcji przedmiot.
D. nazwa stanowi właściwość obiektu przedmiot.
W kodzie JavaScript zapis x = przedmiot.nazwa(); oznacza, że zmienna x będzie przechowywać wynik działania metody nazwa, która jest zdefiniowana w obiekcie przedmiot. W JavaScript metody są funkcjami przypisanymi do obiektów, co oznacza, że mogą one operować na danych wewnątrz tych obiektów. Przykładem może być klasa 'Osoba', która ma metodę 'pobierzImie', zwracającą imię danej osoby. W wywołaniu 'let imie = osoba.pobierzImie();', zmienna imie przechowa wynik działania tej metody. Dobrą praktyką jest, aby metody były odpowiedzialne za operacje związane z danymi, które przechowują, co zwiększa modularność i czytelność kodu. W kontekście standardów programowania, zachowanie to wspiera zasady OOP (programowania obiektowego), umożliwiając enkapsulację oraz ponowne wykorzystanie kodu. Dobrze zdefiniowane metody zwiększają spójność i ułatwiają testowanie jednostkowe. W efekcie, zawsze warto dążyć do klarownego definiowania metod w obiektach, aby poprawić jakość i efektywność pisania kodu.

Pytanie 14

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

A. close();
B. reaload();
C. replace();
D. open();
Metoda replace() obiektu location w JavaScript jest kluczowym narzędziem umożliwiającym zastąpienie bieżącego dokumentu nowym dokumentem wskazywanym przez zdefiniowany adres URL. Kiedy używamy location.replace(url), przeglądarka ładuje nowy dokument z podanego adresu, a bieżąca strona nie pozostaje w historii przeglądania, co oznacza, że użytkownik nie może wrócić do niej za pomocą przycisku "wstecz". Jest to szczególnie użyteczne w scenariuszach, gdy chcemy uniknąć zbędnego gromadzenia historii, na przykład w aplikacjach jednoskalowych (SPA), gdzie nawigacja pomiędzy różnymi widokami powinna być płynna. Przykładowo, po zalogowaniu użytkownika, można przekierować go na stronę główną aplikacji, używając location.replace('/home'). Warto również wspomnieć, że stosowanie tej metody jest zgodne z najlepszymi praktykami w zakresie UX, gdyż pozwala na lepsze zarządzanie historią przeglądarki, co może poprawić doświadczenia użytkownika.

Pytanie 15

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

A. manipulowanie łańcuchami zadeklarowanymi w kodzie
B. przesyłanie danych formularza bezpośrednio do bazy danych
C. pobieranie oraz modyfikowanie elementów strony widocznej w przeglądarce
D. przeprowadzanie operacji na zmiennych przechowujących liczby
Odpowiedź dotycząca pobierania i modyfikowania elementów strony wyświetlonej przez przeglądarkę jest poprawna, ponieważ DOM (Document Object Model) stanowi interfejs programistyczny, który umożliwia skryptom JavaScript dostęp do struktury dokumentu HTML lub XML. Dzięki DOM programiści mogą dynamicznie zmieniać zawartość, strukturę i styl dokumentu. Na przykład, za pomocą metody document.getElementById('elementId') można uzyskać dostęp do konkretnego elementu na stronie, a następnie modyfikować jego właściwości, jak tekst czy atrybuty, za pomocą elementów takich jak innerHTML lub setAttribute. Stosowanie DOM jest zgodne z najlepszymi praktykami, takimi jak minimalizowanie manipulacji na stronie, co prowadzi do lepszej wydajności aplikacji. Warto również zwrócić uwagę na standardy W3C, które promują poprawne użycie DOM w kontekście dostępu i użyteczności stron internetowych. Umiejętność efektywnej pracy z DOM jest kluczowa w nowoczesnym web developmencie, gdzie interaktywność i dynamika są niezbędne do tworzenia atrakcyjnych i responsywnych aplikacji internetowych.

Pytanie 16

Ile razy powtórzy się pętla w JavaScript?

var x=1, i=0;
do{
    x*=3;
    i++;
}
while(x!=27);
A. 27 razy
B. 26 razy
C. 3 razy
D. 2 razy
W przedstawionym kodzie JavaScript, pętla do-while wykonuje się do momentu, gdy zmienna x nie jest równa 27. Zaczynając od wartości x równej 1, przy każdym przejściu przez pętlę zmienna x jest mnożona przez 3. Kolejno, x przyjmuje wartości: 3, 9, 27. Zatem pętla wykonuje się trzy razy, ponieważ dopiero po trzecim cyklu x osiąga wartość 27, co powoduje zakończenie pętli. Do-while zawsze wykonuje przynajmniej jedno przejście, niezależnie od warunku końcowego, dzięki czemu jest przydatna w sytuacjach, gdy operacja musi być przeprowadzona co najmniej raz. Dobrym przykładem wykorzystania tego mechanizmu jest oczekiwanie na spełnienie określonego warunku, np. uzyskanie poprawnej odpowiedzi od użytkownika. Warto zwrócić uwagę, że w przypadku operacji matematycznych wymagających określonej liczby iteracji, pętla do-while zapewnia prostotę i przejrzystość implementacji, zgodnie z dobrymi praktykami zapewniającymi łatwość w czytaniu i utrzymaniu kodu.

Pytanie 17

Który sposób na utworzenie tablicy w JavaScript jest niepoprawny pod względem składniowym?

A. var liczby = [1, 2, 3];
B. var liczby = [3];
C. var liczby = new Array(1, 2, 3);
D. var liczby = new Array[1, 2, 3];
Zauważyłeś, że zapis 'var liczby = new Array[1, 2, 3];' jest błędny, i masz rację. Problem tkwi w tym, że w JavaScript do tworzenia tablicy używa się nawiasów okrągłych, a nie kwadratowych. Dlatego poprawny sposób na utworzenie tablicy z liczbami 1, 2 i 3 to 'var liczby = new Array(1, 2, 3);'. Ale szczerze mówiąc, dużo lepiej jest używać literałów tablicowych, czyli 'var liczby = [1, 2, 3];'. To jest zdecydowanie prostsze i czytelniejsze. W programowaniu dobrze jest wybrać opcje, które sprawiają, że kod jest łatwiejszy do zrozumienia i utrzymania, a literały tablicowe to dokładnie to. Tak więc, kiedy możesz, korzystaj z tej prostszej formy.

Pytanie 18

Aby uruchomić skrypt JavaScript, potrzebne jest oprogramowanie

A. przeglądarka internetowa
B. serwer WWW
C. serwer MySQL
D. debugger JavaScript
Zarówno serwer WWW, serwer MySQL, jak i debugger JavaScript nie są niezbędne do uruchomienia skryptu JavaScript w kontekście przeglądarki internetowej. Serwery WWW służą do hostowania stron internetowych i obsługi zapytań HTTP, jednak nie są one konieczne do uruchamiania lokalnych skryptów JavaScript. Można uruchamiać skrypty bezpośrednio w przeglądarce, co czyni serwer WWW zbędnym w tym kontekście. Z kolei serwer MySQL jest systemem zarządzania bazami danych, który nie ma nic wspólnego z interpretacją skryptów JavaScript; jego rola polega na przechowywaniu i zarządzaniu danymi, a nie na ich wykonaniu. Debugger JavaScript, mimo że jest przydatnym narzędziem dla programistów, nie jest wymagany do podstawowego uruchamiania skryptów. Debugger pomaga w analizie i naprawie błędów w kodzie, ale nie jest niezbędny do samego wykonania skryptu. W związku z tym, żadne z wymienionych narzędzi nie jest konieczne do działania podstawowego skryptu JavaScript w przeglądarkach, co podkreśla, że kluczowym elementem jest sama przeglądarka, która umożliwia interpretację i wykonanie kodu.

Pytanie 19

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

A. wartości przybliżonej liczby
B. pierwiastka kwadratowego liczby
C. wartości bezwzględnej liczby
D. potęgi liczby
W języku JavaScript funkcja Math.pow() jest używana do obliczania potęgi liczby. Przyjmuje ona dwa argumenty: pierwszy to podstawa potęgowania, a drugi to wykładnik. W wyniku działania funkcji uzyskujemy wartość, która jest równoważna podstawie podniesionej do podanej potęgi. Na przykład, wywołanie Math.pow(2, 3) zwróci 8, ponieważ 2 do potęgi 3 to 2 * 2 * 2. Funkcja ta jest zgodna z ECMAScript, co oznacza, że jest standardem w JavaScript i można jej używać w różnych kontekstach, takich jak obliczenia matematyczne w aplikacjach webowych. Istotnym aspektem używania Math.pow() jest również fakt, że może przyjmować liczby ujemne oraz liczby zmiennoprzecinkowe, co czyni ją bardzo uniwersalnym narzędziem. Dodatkowo, dla potęgowania liczby do potęgi 0, wynik zawsze wynosi 1, co jest zgodne z zasadami matematycznymi. Dlatego Math.pow() jest kluczowym elementem biblioteki matematycznej JavaScript, ułatwiającym programistom wykonywanie bardziej skomplikowanych obliczeń.

Pytanie 20

Aby w JavaScript wykonać wymienione kroki, należy w znaczniku <script> umieścić kod

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: ..."
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);
Gratulacje, wybrałeś prawidłową odpowiedź! Kiedy chcemy wykonać interakcje z użytkownikiem poprzez okno dialogowe w JavaScript, używamy funkcji 'prompt()'. Ta funkcja wyświetla okno dialogowe z komunikatem tekstowym, polem do wprowadzania danych i przyciskami OK / Anuluj. Wartość wprowadzona przez użytkownika jest następnie zwracana przez funkcję 'prompt()'. W tym przypadku, używamy funkcji 'prompt()' do pobrania kwalifikacji od użytkownika. Następnie, używamy funkcji 'document.write()' do wyświetlenia zdobytej kwalifikacji na stronie internetowej. Operator '+' jest używany do łączenia łańcuchów znaków (stringów) w JavaScript, co pozwala na połączenie wartości wprowadzonej przez użytkownika z komunikatem 'Kwalifikacja: '. Pamiętaj, że choć 'document.write()' jest łatwym sposobem na wyświetlanie wyników na stronie, jest to metoda zarezerwowana głównie do testowania i debugowania, a nie do użytku produkcyjnego, ze względu na możliwość nadpisania zawartości strony.

Pytanie 21

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

Podana linia kodu została napisana w języku?

document.getElementById("paragraf1").innerHTML = wynik;
A. JavaScript
B. PHP
C. Python
D. C#
Odpowiedź JavaScript jest prawidłowa, ponieważ linia kodu, którą przedstawiono, wykorzystuje standardową metodę DOM (Document Object Model) do dynamicznej manipulacji zawartością HTML. W kodzie 'document.getElementById("paragraf1").innerHTML = wynik;' funkcja 'getElementById' służy do odnajdywania elementu HTML o identyfikatorze 'paragraf1'. Następnie, przypisanie wartości zmiennej 'wynik' do 'innerHTML' tego elementu zmienia jego zawartość tekstową. JavaScript jest głównym językiem do tworzenia interaktywnych stron internetowych i umożliwia programistom tworzenie dynamicznych funkcjonalności. Przykład praktycznego użycia to sytuacja, gdy na stronie internetowej chcemy wyświetlić obliczone wyniki w czasie rzeczywistym, np. w aplikacjach kalkulatorów online. W kontekście standardów branżowych, używanie DOM do manipulacji elementami HTML w JavaScript jest uważane za dobrą praktykę, a jego znajomość jest niezbędna dla każdego web developera.

Pytanie 23

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

function potega(a, b = 2) { ... return wynik; }
A. może być wywołana z jedną wartością
B. nie przyjmuje żadnych argumentów
C. wymaga podania dwóch argumentów przy wywołaniu
D. nie zwraca wartości
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

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

function validateForm(Form)
{
reg=/^\[1-9\]*[A-ZŻŹĘĄĆŚÓŁŃ]{1}[a-zżźćńółęąś]{2,}$/;
wyn = Form.nazwa.value.match(reg);
if (wyn == null) {
    alert("Proszę podać poprawną nazwę");
    return false;
}
return true;
}
A. /* Pole nazwa może składać się z dowolnego ciągu cyfr (z wyłączeniem 0), małych i dużych liter. */
B. /* Pole nazwa może zawierać dowolny ciąg cyfr (z wyłączeniem 0), następnie musi zawierać dużą literę i ciąg minimum dwóch małych liter. */
C. /* Pole nazwa powinno składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i ciągu małych liter. */
D. /* Pole nazwa musi składać się w kolejności: z ciągu cyfr (z wyłączeniem 0), następnie dużej litery i dwóch małych liter. */
Odpowiedź druga jest poprawna, ponieważ dokładnie opisuje wzorzec walidacji użyty w kodzie JavaScript. Wyrażenie regularne określa, że pole nazwa może zaczynać się od dowolnej liczby cyfr od 1 do 9, co oznacza, że cyfra 0 jest wykluczona, co jest zgodne z opisem. Następnie musi wystąpić jedna duża litera, co jest również zgodne z wymogiem wzorca. Kolejnym wymogiem jest wystąpienie co najmniej dwóch małych liter, co także jest zgodne z przedstawionym wzorcem. Poprawna i precyzyjna dokumentacja kodu ma kluczowe znaczenie dla utrzymania oraz dalszego rozwoju oprogramowania. Dobrze udokumentowane wyrażenia regularne pozwalają na lepsze zrozumienie logiki walidacji i ułatwiają pracę zespołom deweloperskim. Warto również zauważyć, że stosowanie wyrażeń regularnych w walidacji danych wejściowych jest standardową praktyką w branży IT, szczególnie w aplikacjach webowych, gdzie dane użytkowników wymagają szczegółowego sprawdzania pod kątem poprawności i bezpieczeństwa. Dzięki temu można uniknąć potencjalnych błędów i ataków wynikających z niewłaściwie przetworzonych danych.

Pytanie 25

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. w liniach 3 i 6 zamienić znaki cudzysłowu na apostrof, np. ' jest mniejsze'
B. w liniach 2 i 5 zmienne a i b umieścić w cudzysłowach
C. dodać nawiasy klamrowe w sekcjach if oraz else
D. umieścić znaki $ przed nazwami zmiennych
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 26

Fragmenty kodu JavaScript w dokumencie HTML mogą być umieszczone

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

document.getElementById("napis").innerHTML = Date); // Aby poprawnie skomentować podaną linijkę kodu w języku JavaScript, należy dodać komentarz po znakach //

A. niepoprawne informacje
B. zmiana właściwości atrybutu innerHTML
C. wyświetlenie ciągu "Date()" w znaczniku o id = napis
D. wyświetlenie daty oraz czasu w znaczniku o id = napis
Wybór odpowiedzi, które nie są poprawne, opiera się na nieścisłym zrozumieniu działania funkcji i użycia atrybutu 'innerHTML'. Pierwsza z niepoprawnych odpowiedzi sugeruje, że przedstawione dane są nieprawidłowe, co jest mylne. W rzeczywistości, kod nie jest błędny w sensie syntaktycznym, ale jego logika w kontekście wyświetlania aktualnej daty i czasu wymaga poprawy. Druga odpowiedź, odnosząca się do zmiany stylu atrybutu 'innerHTML', jest również błędna, ponieważ atrybut 'innerHTML' nie służy do zmiany stylu elementu. W rzeczywistości, 'innerHTML' jest używany do wstawiania lub modyfikacji zawartości HTML danego elementu, a nie jego stylizacji. Stylizacja powinna być realizowana poprzez CSS lub Javascript wykorzystujący inne metody, takie jak 'style' lub 'classList'. Trzecia niepoprawna odpowiedź sugeruje, że kod wyświetli tekst 'Date()', co jest całkowicie błędne. Funkcja bez nawiasów nie zwraca wyników, a jedynie odnosi się do konstruktora obiektów daty. W związku z tym, wynik będzie niepoprawny i nie przyczyni się do wyświetlenia aktualnej daty i czasu na stronie. W kontekście programowania w JavaScript, kluczowe jest zrozumienie różnicy między wywołaniem funkcji a odniesieniem się do funkcji jako obiektu, co jest fundamentalne dla efektywnej manipulacji DOM.

Pytanie 28

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

A. Perl
B. JavaScript
C. PHP
D. Python
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 29

Skrypt w JavaScript, który obsługuje wynagrodzenia pracowników, powinien stworzyć raport dla tych, którzy są zatrudnieni na umowę o pracę oraz otrzymują wynagrodzenie w przedziale domkniętym od 4000 do
4500 zł. Jaki warunek należy zastosować 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)
Analizując inne odpowiedzi, można zauważyć kilka kluczowych błędów w koncepcjach wykorzystanych w tych formułach. W pierwszej odpowiedzi występuje nieprawidłowe użycie operatora logicznego '||', który w tym kontekście nie jest odpowiedni. Wykorzystanie '||' oznacza, że pensja może być mniejsza lub równa 4000 zł, co prowadzi do sytuacji, w której zostaną uwzględnieni pracownicy, którzy nie spełniają wymogu minimalnej pensji, co jest sprzeczne z założeniem raportu. W drugiej odpowiedzi zastosowanie operatora '||' również powoduje, że warunek dotyczący umowy jest nieistotny, co sprawia, że program może generować raporty dla osób zatrudnionych na innych rodzajach umów. Trzecia odpowiedź wydaje się być bliska, jednak użycie '&&' w odniesieniu do pensji nie jest wystarczające, ponieważ nie definiuje warunku zatrudnienia. Właściwa logika programistyczna wymaga precyzyjnego określenia zarówno rodzaju umowy, jak i zakresu płacy. W praktyce, niepoprawne zrozumienie operatorów logicznych oraz ich zastosowania w warunkach może prowadzić do poważnych błędów w kodzie, co w konsekwencji wpływa na jakość danych raportowych. Warto pamiętać, że przy tworzeniu warunków w oprogramowaniu, kluczowe jest stosowanie odpowiednich operatorów, aby uniknąć błędów w logice oraz zapewnić poprawność wyników.

Pytanie 30

Na listingu kodu JavaScript w wykropkowanej części definicji obiektu osoba należy wpisać kod, który prawidłowo obsłuży instrukcję osoba.j = "PL"; Który to będzie kod?

 var osoba = {
    imie: "Jan",
    jezyk: "EN",
    set j(nazwa) {  ...  }
};
A. return this.j;
B. return this.jezyk;
C. this.j = nazwa;
D. this.jezyk = nazwa;
Twoja odpowiedź jest poprawna. W pytaniu mamy do czynienia z obiektem 'osoba' w JavaScript, który posiada właściwości 'imie' i 'jezyk'. Właściwość 'jezyk' jest obsługiwana przez setter 'set j(nazwa)', którego zadaniem jest przypisanie wartości do tej właściwości. Instrukcja 'osoba.j = "PL";' oznacza, że chcemy ustawić wartość 'PL' dla właściwości 'jezyk'. Aby to osiągnąć, setter musi przypisać tę wartość do właściwości 'jezyk'. Dlatego poprawnym kodem jest 'this.jezyk = nazwa;'. 'This' w tym kontekście odnosi się do obiektu 'osoba', a 'nazwa' to wartość, którą chcemy przypisać do właściwości 'jezyk'. To przykład dobrej praktyki zarządzania stanem obiektu w JavaScript, a także dobrej praktyki tworzenia setterów, które są integralną częścią programowania zorientowanego obiektowo.

Pytanie 31

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

A. Samochod.spalanie_na100
B. Samochod.kolor
C. Samochod()
D. Samochod.spalanie()
W przypadku niepoprawnych odpowiedzi, możemy zauważyć, że pierwsza z nich, Samochod(), sugeruje wywołanie konstruktora obiektu, co nie jest poprawne w kontekście wywołania metody. Kiedy używamy nawiasów, JavaScript interpretuje to jako próbę stworzenia nowego obiektu, a nie dokonania akcji na istniejącym obiekcie. Kolejna odpowiedź, Samochod.kolor, odnosi się do właściwości obiektu, a nie do metody. W JavaScript możemy uzyskać dostęp do właściwości obiektów za pomocą notacji kropkowej, ale nie wykonuje to żadnej akcji ani nie wywołuje funkcji, co czyni tę odpowiedź niepoprawną w kontekście pytania. Ostatnia propozycja, Samochod.spalanie_na100, również nie jest poprawna, ponieważ sugeruje, że spalanie_na100 jest właściwością obiektu, a nie metodą. Warto zauważyć, że w JavaScript metody są definiowane jako funkcje w obiektach, co oznacza, że muszą być wywoływane z użyciem nawiasów, aby uzyskać pożądany efekt. Dlatego tylko odpowiedź wskazująca na metodę spalanie() jest właściwa. W kontekście programowania obiektowego w JavaScript, każde polecenie powinno być zgodne z definicją i zastosowaniem metod, co zwiększa przejrzystość kodu i jego funkcjonalność.

Pytanie 32

W języku JavaScript funkcja getElementById odnosi się do

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

Pytanie 33

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

var x = 5;
var y = 3;
if (x = y)
  document.getElementById("demo").innerHTML = "zmienne są równe";
else
  document.getElementById("demo").innerHTML = "zmienne się różnią";
A. Zmienne zostały błędnie zadeklarowane
B. Przed instrukcją else nie powinno być średnika
C. W instrukcji if znajduje się przypisanie zamiast operacji porównania
D. Polecenia w sekcjach if i else powinny zostać zamienione miejscami
Kod JavaScript z błędem logicznym w pytaniu ma na celu sprawdzenie równoważności dwóch zmiennych, jednak ze względu na użycie niewłaściwego operatora nie działa poprawnie. W przypadku stwierdzenia, że przed klauzulą else nie powinno być średnika, należy zrozumieć, że w JavaScript średnik wskazuje koniec instrukcji i jego obecność lub brak bezpośrednio przed else może zmienić logikę kodu, ale nie w tym kontekście. Jeśli chodzi o błędne przypisanie zamiast porównania w instrukcji if, właściwe używanie operatorów przypisania i porównania jest kluczowe, ponieważ ich zamiana prowadzi do logicznych błędów, które mogą być trudne do zdiagnozowania. Natomiast nieprawidłowa deklaracja zmiennych w JavaScript może wpływać na zakres lub sposób ich użycia, ale tutaj zmienne są poprawnie zadeklarowane za pomocą var, choć nowoczesne standardy promują let lub const dla lepszej kontroli zakresu. Na koniec, zamiana miejsc instrukcji wewnątrz sekcji if oraz else prowadzi jedynie do zmiany logicznej kolejności akcji bez rozwiązywania błędu pierwotnego, jakim jest użycie niewłaściwego operatora porównania. Kluczowym jest tu zrozumienie, że zrozumienie i poprawne stosowanie operatorów logicznych jest fundamentalne w pisaniu poprawnego kodu.

Pytanie 34

Którą czynność gwarantującą poprawne wykonanie przedstawionego kodu Java Script, należy wykonać przed pętlą?

var text;
for ( var i = 0; i < tab.length; i++ ) {
  text += tab[i] + "<br>";
}
A. Zainicjować zmienną text.
B. Sprawdzić rozmiar tabeli tab.
C. Sprawdzić czy text j est typu znakowego.
D. Zadeklarować zmienną i.
Wygląda na to, że odpowiedź nie była poprawna. Pozostałe opcje, tj. 'Sprawdzić czy text j est typu znakowego', 'Zadeklarować zmienną i', 'Sprawdzić rozmiar tabeli tab', nie są bezpośrednio związane z poprawnym wykonaniem kodu przedstawionego w pętli. Chociaż wszystkie te działania mogą być istotne w różnych kontekstach programowania, w tym przypadku żadne z nich nie gwarantuje poprawnego wykonania kodu. Deklaracja zmiennej 'i' czy sprawdzenie rozmiaru tabeli 'tab' jest często stosowane w pętlach, jednak nie gwarantują one poprawnego działania kodu w pętli bez odpowiedniego zainicjowania zmiennej 'text'. Zrozumienie tego aspektu jest kluczowe dla efektywnego programowania, zarówno w JavaScript, jak i w innych językach programowania.

Pytanie 35

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 36

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 onselect="return dodaj()">dodaj</button>
B. <button onselect="return dodaj()">oblicz</button>
C. <button onclick="return dodaj()">dodaj</button>
D. <button onclick="return oblicz()">dodaj</button>
Wybór niewłaściwej odpowiedzi sugeruje pewne nieporozumienie związane z obsługą zdarzeń w JavaScript i jak są one wywoływane w kontekście przycisków. Wszystkie pozostałe odpowiedzi używają zdarzenia 'onselect' lub wywołują nieistniejącą funkcję 'oblicz'. Zdarzenie 'onselect' jest wyzwalane, gdy użytkownik zaznacza tekst w elemencie, co jest nieodpowiednie dla przycisku. Innymi słowy, 'onselect' nie jest odpowiednim zdarzeniem do obsługi kliknięcia przycisku. Co więcej, wywołanie funkcji 'oblicz' jest błędem, ponieważ nie istnieje taka funkcja zdefiniowana w skrypcie. Ta myląca odpowiedź może wynikać z niezrozumienia, jak zdarzenia są obsługiwane w JavaScript i jakie zdarzenia są odpowiednie dla różnych elementów. Zasada ta jest zgodna z dobrymi praktykami programowania, które zalecają używanie odpowiednich zdarzeń dla różnych elementów i typów interakcji użytkownika.

Pytanie 37

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

function fun1(a)
{
    for (n = a; n <= 100; n++)
        document.write(n);
    return n;
}
A. wypisanie wartości zmiennej a oraz zwrócenie wartości zmiennej n
B. wypisanie liczb z przedziału a .. 100 i zwrócenie wartości zmiennej n
C. wypisanie liczb z przedziału a .. 99 i zwrócenie wartości 100
D. zwrócenie liczb z przedziału a .. 99
Wybrane przez Ciebie odpowiedzi są niepoprawne, gdyż nie odzwierciedlają w pełni działania pętli for w JavaScript. Pętla for jest używana do iterowania tyle razy, ile wynosi różnica między 100 a wartością argumentu a, wypisując każdą iterację. Następnie funkcja zwraca wartość o 1 większą niż warunek kończący pętlę (100), co wynosi 101. Błędem było zakładanie, że funkcja zwraca wartości w inny sposób. Przykładowo, jedna z nieprawidłowych odpowiedzi sugerowała, że funkcja zwraca liczby z przedziału a do 99 - jednakże zwracana jest liczba 101. Inna błędna odpowiedź sugerowała, że funkcja wypisuje wartość zmiennej a i zwraca wartość zmiennej n - jednakże wypisywane są liczby od a do 100, a zwracana jest wartość 101. Kolejnym błędem było zakładanie, że funkcja zwraca wartość 100 - co jest nieprawdą, gdyż funkcja zwraca wartość 101. Zrozumienie działania pętli for i funkcji zwracających wartości jest kluczowe dla programowania w JavaScript, dlatego warto poświęcić więcej czasu na praktykę i naukę tych konceptów.

Pytanie 38

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

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

Pytanie 39

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

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

Pytanie 40

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. czescCalkowita
B. czescUlamkowa
C. obj1
D. oblicz
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.