KWALIFIKACJA INF3 - PAŹDZIERNIK 2016

PYTANIE NR 25.
W formularzu dane z pola input o typie number zostały zapisane do zmiennej a, a następnie przetworzone w skrypcie JavaScript w następujący sposób

var x = parselnt(a);

Zmienna x będzie typu

A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Funkcja parseInt parsuje przekazaną wartość i zwraca liczbę typu number, interpretowaną jako część całkowita (bez części ułamkowej). Gdy dane wejściowe nie dają się poprawnie zamienić na liczbę, wynikiem może być NaN, ale przy poprawnej wartości liczbowej otrzymujemy liczbę całkowitą.

Pełne wyjaśnienie:

W JavaScript istnieje jeden podstawowy typ liczbowy: number. Nie ma osobnego typu "int" znanego np. z C/C++/Javy. Liczba może jednak reprezentować zarówno wartości całkowite, jak i ułamkowe.

Wywołanie parseInt(...) służy do parsowania (odczytania) liczby całkowitej z przekazanej wartości. Najczęściej wejściem jest tekst (łańcuch znaków), np. wartość pobrana z pola formularza <input> (często jest to tekst, nawet jeśli pole ma typ number, zależnie od sposobu pobrania danych). Działanie parseInt polega na odczytaniu części całkowitej z początku napisu i zwróceniu jej jako number.

  • Odpowiedź "liczbowego, całkowitego." jest poprawna, bo wynikiem parseInt jest liczba (typ number) reprezentująca wartość całkowitą.
  • Odpowiedź "napisowego." jest niepoprawna, ponieważ parseInt nie zwraca tekstu, tylko wynik liczbowy (albo NaN).
  • Odpowiedź "zmiennoprzecinkowego." jest myląca: w JS typ number jest zmiennoprzecinkowy "w środku", ale parseInt usuwa część ułamkową i zwraca wartość całkowitą (np. z "12.9" zrobi 12). W kontekście pytania chodzi o to, że wynik jest całkowity.
  • Odpowiedź "NaN" może wystąpić tylko wtedy, gdy wejście nie jest poprawnie interpretowane jako liczba (np. pusty ciąg, niepoprawne znaki). Jeśli jednak w polu znajduje się poprawna wartość liczbowa, typ wyniku pozostaje liczbowy, a wartość jest całkowita.

Wskazówka egzaminacyjna: zawsze rozważ, czy pytanie zakłada poprawne dane wejściowe. Jeśli tak, wybieraj odpowiedź o typie liczbowym i charakterze całkowitym dla parseInt; jeśli nie, pamiętaj o możliwości NaN.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
parseInt zwraca wartość typu number, wyliczoną przez odczytanie liczby całkowitej z podanego argumentu (zwykle tekstu). Jeśli nie da się odczytać liczby, wynikiem jest NaN. Często warto też podać podstawę, np. parseInt(x, 10).
W JavaScript nie ma osobnego typu int. Jest jeden typ liczbowy number (oraz osobny BigInt dla bardzo dużych liczb). Dlatego nawet "liczba całkowita" z parseInt ma typ number; "całkowitość" dotyczy wartości, nie osobnego typu.
To zależy od sposobu odczytu. Przy pobieraniu przez właściwość value typowo dostajesz tekst, który trzeba zamienić na liczbę (np. Number(), parseInt()). Dopiero po konwersji możesz bezpiecznie wykonywać obliczenia i porównania liczbowe.
NaN pojawi się, gdy argument nie zawiera na początku poprawnej reprezentacji liczby całkowitej. Przykłady: pusty ciąg, same litery, nieoczekiwany format. W praktyce w formularzach dzieje się to, gdy pole jest puste lub walidacja nie wymusiła poprawnej wartości.
parseInt czyta część całkowitą (ucina ułamek i może zatrzymać się na niecyfrowych znakach). Number próbuje zamienić całą wartość na liczbę i jest bardziej "rygorystyczny". Do danych z formularza często lepsze jest Number, jeśli oczekujesz pełnej liczby (także ułamkowej).
Najbezpieczniej używać parseInt(zmienna, 10), żeby jawnie wskazać system dziesiętny. Następnie sprawdź wynik: Number.isNaN(wynik). To typowy schemat egzaminacyjny: konwersja → kontrola błędu → dopiero potem logika biznesowa.
parseInt nie zaokrągla jak Math.round. Zwykle odczytuje liczbę całkowitą i ignoruje resztę (np. z "12.9" otrzymasz 12). To ważne, bo uczniowie często mylą "ucięcie" z "zaokrągleniem" i wybierają błędne wyniki.
Możesz użyć typeof x === "number", ale to nie wykryje NaN jako błędu (NaN też ma typeof "number"). Dlatego po konwersji stosuje się Number.isNaN(x). W zadaniach egzaminacyjnych to częsty "haczyk" przy walidacji.
W JS typ number jest technicznie zmiennoprzecinkowy, ale pytania egzaminacyjne często rozróżniają "wartość całkowitą" i "wartość z ułamkiem". parseInt służy do uzyskania wartości całkowitej, więc mimo typu number właściwszy opis to "liczbowa, całkowita".
Najczęstsze pomyłki to: traktowanie value jak liczby (a to bywa tekst), brak obsługi pustej wartości (skutek: NaN), oraz użycie złej funkcji konwersji. Dobra praktyka to walidacja HTML + walidacja w JS + sprawdzenie NaN.
info

Około 60% zdających odpowiada poprawnie na to pytanie. średnie

Specjaliści zwracają uwagę: "Funkcja parseInt parsuje przekazaną wartość i zwraca liczbę typu number, interpretowaną jako część całkowita (bez części ułamkowej)."

Źródła:

  • MDN Web Docs: parseInt() - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/parseInt (dostęp: 2026-02-28)
  • MDN Web Docs: NaN - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NaN (dostęp: 2026-02-28)
  • ECMAScript Language Specification (ECMA-262): Global Object – parseInt (sekcja dotycząca ParseInt) - https://tc39.es/ecma262/ (dostęp: 2026-02-28)

Materiały:

  • Dokumentacja MDN: parseInt() i Number/NaN
  • Kurs podstaw JavaScript: typy danych i konwersje
  • Ćwiczenia z formularzy HTML: pobieranie i walidacja wartości pól

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego