MODUŁ 04
Funkcje i parametry
PPrezentacja dla nauczyciela
W tym module nauczysz się organizować kod w wielokrotnie wykorzystywane bloki: tworzyć funkcje o znaczących nazwach, przekazywać do nich parametry oraz zwracać wyniki obliczeń za pomocą instrukcji return.
Definiowanie i wywoływanie funkcji
Funkcja w języku JavaScript to nazwany blok instrukcji przygotowany do wielokrotnego wykonywania. Zamiast powielać ten sam kod w wielu miejscach skryptu, zamykamy logikę w funkcji i wywołujemy ją zawsze wtedy, gdy zachodzi potrzeba (np. po kliknięciu przycisku przez użytkownika).
Podstawowa składnia deklaracji funkcji składa się ze słowa kluczowego function, unikalnej i znaczącej nazwy, nawiasów okrągłych () oraz ciała funkcji ograniczonego nawiasami klamrowymi { }:
function wyczyscFormularz() {
// instrukcje do wykonania
}
Dobre praktyki nazewnictwa nakazują stosowanie czasowników opisujących wykonywaną czynność, np. obliczCene, zmienZdjecie, zatwierdzDane. Unikaj nazw jednoliterowych lub niejasnych skrótów, ponieważ kod traci wówczas czytelność.
Samo zadeklarowanie funkcji nie powoduje jej uruchomienia — funkcja wykonuje się dopiero wtedy, gdy zostanie jawnie wywołana w kodzie (np. wyczyscFormularz()) lub przypisana do obsługi zdarzenia w dokumencie HTML.
W poniższym przykładzie funkcja wyczyscFormularz() resetuje wartość pola tekstowego oraz aktualizuje komunikat o stanie. Przetestuj działanie przycisku:
function wyczyscFormularz() {
const pole = document.getElementById("poleNotatki");
pole.value = "";
const stan = document.getElementById("stanPola");
stan.textContent = "Pole zostało pomyślnie wyczyszczone.";
}
Parametry i argumenty funkcji
Aby funkcja była uniwersalna i mogła działać na różnych danych wejściowych, wyposażamy ją w parametry. Parametry to nazwane zmienne umieszczone w nawiasach okrągłych w nagłówku funkcji. W momencie wywołania funkcji przekazujemy do nich konkretne wartości, nazywane argumentami.
function wybierzPakiet(nazwa, cena) {
// nazwa i cena to parametry działające jak lokalne zmienne
}
Dzięki parametrom jedna funkcja może obsługiwać wiele różnych przycisków lub wariantów. Zamiast pisać trzy oddzielne funkcje dla trzech pakietów usług, definiujemy jedną funkcję wybierzPakiet(nazwa, cena), a w znacznikach HTML przekazujemy właściwe wartości w atrybucie zdarzenia:
<button onclick="wybierzPakiet('Podstawowy', 49)">...</button>
<button onclick="wybierzPakiet('Premium', 149)">...</button>
Warto pamiętać, że parametry stają się zmiennymi lokalnymi widocznymi wyłącznie w ciele danej funkcji — po zakończeniu jej działania przestają istnieć i nie kolidują ze zmiennymi w innych częściach programu.
Trzy różne przyciski wywołują tę samą funkcję, przekazując jej różne argumenty.
W edytorze poniżej sprawdź działanie każdego z nich:
function wybierzPakiet(nazwa, cena) {
const podsumowanie = document.getElementById("podsumowaniePakietu");
podsumowanie.textContent = "Wybrano: " + nazwa + " — koszt miesięczny: " + cena + " zł";
}
Zwracanie wartości za pomocą instrukcji return
Wiele funkcji ma za zadanie wykonać konkretne obliczenie matematyczne lub przekształcenie danych i odesłać gotowy wynik z powrotem do miejsca, w którym funkcja została wywołana. Do tego celu służy słowo kluczowe return.
Gdy interpreter napotka instrukcję return wartosc;:
- Oblicza wartość wyrażenia stojącego za słowem
return. - Natychmiast przerywa wykonywanie funkcji (wszelkie linie kodu po
returnw danym bloku zostaną zignorowane). - Przekazuje wyliczoną wartość w miejsce wywołania funkcji.
Dzięki temu możemy przypisać wynik działania funkcji do zmiennej, na przykład:
function obliczPole(a, b) {
return a * b;
}
const poleDzialki = obliczPole(15, 20); // poleDzialki otrzymuje wartość 300
Rozdzielenie funkcji czysto obliczeniowych (które tylko liczą i zwracają wynik) od funkcji prezentacyjnych (które pobierają dane z kontrolek i wypisują treść na stronie) to podstawowa zasada dobrej architektury kodu — ułatwia testowanie i zapobiega błędom.
Funkcja obliczPoleProstokata(a, b) oblicza pole powierzchni i zwraca wynik, który funkcja główna wyświetla w akapicie wynikowym.
W edytorze poniżej przetestuj działanie kalkulatora:
function obliczPoleProstokata(szerokosc, dlugosc) {
return szerokosc * dlugosc;
}
function pokazWymiaryDzialki() {
const a = parseFloat(document.getElementById("bokA").value);
const b = parseFloat(document.getElementById("bokB").value);
const pole = obliczPoleProstokata(a, b);
const obwod = 2 * (a + b);
const wynik = document.getElementById("wynikWymiarow");
wynik.textContent = "Pole powierzchni: " + pole + " m², obwód: " + obwod + " m";
}
Ćwiczenia
- 1Prosta funkcja powitalnaZadeklaruj funkcję bez parametrów i wywołaj ją w kodzie.Zadanie i podpowiedzi →
- 2Wielokrotne wywołanie funkcjiUżyj funkcji do wielokrotnego wypisania linii separatora.Zadanie i podpowiedzi →
- 3Funkcja z parametrem imieniaPrzekaż imię użytkownika jako argument do funkcji.Zadanie i podpowiedzi →
- 4Wypisanie sumy z dwoma parametramiZdefiniuj funkcję przyjmującą dwie liczby i wypisującą ich sumę.Zadanie i podpowiedzi →
- 5Zwracanie wartości return — pole prostokątaNapisz funkcję obliczającą pole prostokąta i zwracającą wynik instrukcją return.Zadanie i podpowiedzi →
- 6Obwód prostokąta z returnZwróć obwód prostokąta ze wzoru 2 * (a + b).Zadanie i podpowiedzi →
- 7Przelicznik temperatury Celsjusz na FahrenheitZastosuj funkcję obliczeniową do przeliczania stopni Celsjusza na Fahrenheita.Zadanie i podpowiedzi →
- 8Kalkulator ceny brutto z VATStwórz uniwersalną funkcję obliczającą cenę brutto dla dowolnej stawki podatku.Zadanie i podpowiedzi →
- 9Funkcja logiczna sprawdzająca pełnoletnośćZwróć wartość typu boolean bezpośrednio z wyrażenia porównania.Zadanie i podpowiedzi →
- 10Funkcja normalizująca tekstOczyść i skapitalizuj przekazany tekst wewnątrz funkcji pomocniczej.Zadanie i podpowiedzi →
- 11Wyznaczanie większej liczby z if i returnZwróć większą z dwóch liczb za pomocą instrukcji warunkowej wewnątrz funkcji.Zadanie i podpowiedzi →
- 12Sprawdzanie parzystości liczby operatorem moduloZwróć informację, czy liczba jest parzysta za pomocą operatora reszty z dzielenia %.Zadanie i podpowiedzi →
- 13Formatowanie czasu trwania z minut na godzinyPrzelicz minuty na sformatowany tekst w postaci Xh Ymin.Zadanie i podpowiedzi →
- 14Kalkulator ceny po rabacieNapisz funkcję obliczającą ostateczną cenę po odliczeniu rabatu z progami.Zadanie i podpowiedzi →
- 15Łączenie funkcji pomocniczychUżyj wywołania jednej funkcji wewnątrz innej funkcji obliczeniowej.Zadanie i podpowiedzi →
- 16Kalkulator kosztu podróży samochodemZbuduj kompletną funkcję obliczającą koszt paliwa z zaokrągleniem wyniku.Zadanie i podpowiedzi →