KWALIFIKACJA INF3 - STYCZEŃ 2023

PYTANIE NR 9.
Które stwierdzenie na temat funkcji fun1 zapisanej w języku JavaScript jest prawdziwe?
Ilustracja przedstawia fragment kodu w języku JavaScript, który jest związany z pytaniem egzaminacyjnym dotyczącym funkcji
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Prawdziwe jest stwierdzenie, że fun1 ma trzy parametry, w tym jeden napisowy, i zwraca liczbę.
Wynika to z analizy nagłówka funkcji (liczba i typ danych wejściowych) oraz z tego, że w kodzie występuje return zwracający wartość numeryczną, a nie tekst ani "dwie wartości".

Pełne wyjaśnienie:

W JavaScript o tym, ile danych wejściowych przyjmuje funkcja, decyduje liczba parametrów wpisanych w jej definicji. Jeżeli w zapisie funkcji fun1 widnieją trzy nazwy w nawiasach, oznacza to trzy parametry (niezależnie od tego, czy w wywołaniu ktoś poda później mniej lub więcej argumentów).

O tym, czy funkcja zwraca wartość, decyduje użycie instrukcji return. Jeżeli w kodzie znajduje się return z wyrażeniem dającym wynik liczbowy (np. działanie arytmetyczne, rzutowanie na liczbę, użycie funkcji zwracającej number), to typ wyniku jest numeryczny. W takim przypadku poprawne jest stwierdzenie, że funkcja zwraca wartość liczbową.

Dlaczego pozostałe odpowiedzi są niepoprawne:

  • "Ma dwa parametry liczbowe i zwraca napis" – nie zgadza się ani liczba parametrów, ani typ zwracany; nie można uznać zwracanej wartości za napis, jeśli zwracane jest wyrażenie liczbowe.
  • "Zwraca dwie wartości przechowywane w zmiennych a i b" – standardowa funkcja w JavaScript zwraca pojedynczą wartość. "Dwie wartości" można zwrócić dopiero przez opakowanie ich w strukturę (np. tablicę lub obiekt). Samo istnienie zmiennych a i b nie oznacza zwrócenia dwóch wyników.
  • "Przyjmuje trzy parametry, lecz nie zwraca wartości" – jest fałszywe, jeśli w kodzie występuje return. Brak jawnego zwracania w części instrukcji nie zmienia faktu, że funkcja może zwracać wartość, gdy return jest wykonany.

Wskazówka egzaminacyjna: najpierw policz parametry w definicji funkcji, potem znajdź return i określ, co dokładnie jest zwracane (typ wyniku wynika z wyrażenia po return, a nie z nazw zmiennych).

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Policz nazwy w nawiasach definicji funkcji, np. function f(a, b, c) ma 3 parametry. To parametry "formalne" w deklaracji. W wywołaniu przekazuje się argumenty, ale liczba parametrów wynika z definicji, nie z pojedynczego wywołania.
Oznacza to, że w jej kodzie wykonywana jest instrukcja return, a wywołanie funkcji przyjmuje wartość zwróconą. Jeśli return nie występuje, funkcja zwraca undefined. Liczy się to, co jest po słowie return.
Standardowo funkcja zwraca jedną wartość. Dwa wyniki trzeba zapakować w jedną strukturę, np. tablicę [a, b] albo obiekt {a: a, b: b}. Same zmienne w środku funkcji nie oznaczają automatycznie zwracania wielu wartości.
Spójrz na wyrażenie po return. Operacje arytmetyczne zwykle dają number, konkatenacja z napisem często daje string. Pomaga też analiza użytych funkcji (np. konwersje) i operatorów. Nazwy zmiennych nie gwarantują typu.
Nie zawsze. Jeśli w środku funkcji jest wykonywany return w jakiejś gałęzi (np. w if), to w tej ścieżce funkcja zwróci wartość. Gdy do return nie dojdzie, wynik będzie undefined. Na egzaminie trzeba ocenić logikę całego kodu.
Najczęstsze pułapki to: mylenie parametrów z argumentami, nieuwzględnianie typu wyniku wyrażenia po return, traktowanie przypisań do zmiennych jako "wyniku funkcji", oraz ignorowanie tego, że funkcja może zwracać undefined, jeśli return nie zostanie wykonany.
Tak, JavaScript na to pozwala, ale w typowych zadaniach egzaminacyjnych liczbę parametrów odczytuje się z definicji. Nadmiarowe argumenty nie zwiększają liczby parametrów. W praktyce można je obsłużyć (np. przez rest parameter), ale to osobne zagadnienie.
W czystym JavaScript typ jest dynamiczny, więc często ocenia się go po użyciu: jeśli parametr jest łączony z tekstem lub porównywany jako napis, wskazuje to na string. Jeśli bierze udział w działaniach arytmetycznych bez konwersji do tekstu, zwykle jest traktowany jako number.
Pytanie dotyczy całej funkcji: jej wejścia (parametry) i wyjścia (wartość zwracana). Odpowiedź jest prawdziwa tylko wtedy, gdy oba elementy pasują do kodu. Częsty błąd to wybór opcji zgodnej tylko z jednym fragmentem (np. tylko z parametrami).
Ustal w kolejności: 1) liczba parametrów w definicji, 2) gdzie jest return, 3) co dokładnie zwraca return (jakie wyrażenie), 4) czy istnieje ścieżka bez return. Ta procedura minimalizuje pomyłki w zadaniach jednokrotnego wyboru.
info

Statystycznie 42% uczniów zna prawidłową odpowiedź. trudne

Źródła:

  • MDN Web Docs: "Functions" (JavaScript) – opis parametrów i wywołań funkcji, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Functions (dostęp: 2026-02-18)
  • MDN Web Docs: "return" statement – działanie i wpływ na wynik funkcji, https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/return (dostęp: 2026-02-18)
  • MDN Web Docs: "JavaScript data types and data structures" – typy podstawowe (m.in. string, number), https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures (dostęp: 2026-02-18)

Materiały:

  • MDN Web Docs: Definicje funkcji i parametry w JavaScript
  • MDN Web Docs: Instrukcja return
  • Materiały kursowe do INF.3 z podstaw JavaScript (funkcje, typy, operatory)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego