Funkcje i Zdarzenia
DefinicjaCzym jest funkcja?
Funkcja to blok kodu zaprojektowany do wykonania określonego zadania. Używamy funkcji, aby:
- Modularyzacja: Dzielić duży program na mniejsze, łatwiejsze do zarządzania fragmenty.
- Ponowne użycie: Wywoływać ten sam kod wiele razy bez jego kopiowania.
-
Parametry: Przyjmować dane wejściowe (argumenty) i zwracać wynik za pomocą
return.
FunkcjeDeklaracja i wyrażenia
Deklaracja funkcji (function declaration)
Funkcja jest dostępna w całym zasięgu, również przed miejscem definicji (tzw. hoisting).
const wynik = a + b;
return wynik;
}
// Wywołanie:
const suma = obliczSume(10, 5); // suma = 15
Wyrażenie funkcyjne (function expression)
Funkcja przypisana do zmiennej (często const), dostępna dopiero po zadeklarowaniu w kodzie. Często jest anonimowa i używana np. w obsłudze zdarzeń.
console.log("Witaj, " + imie);
};
// Wywołanie:
powitaj("Anna");
ZdarzeniaReagowanie na interakcje
Zdarzenie (event) to akcja w systemie, np. kliknięcie myszą, wciśnięcie klawisza, załadowanie strony czy zmiana pola formularza. [web:18]
Metoda addEventListener (zalecana)
Pozwala przypisać wiele funkcji do tego samego zdarzenia na jednym elemencie i łatwo je zdejmować. [web:18]
przycisk.addEventListener("click", function () {
alert("Przycisk kliknięty!");
});
Obiekt event (ponadpodstawowe)
Każda funkcja obsługująca zdarzenie może otrzymać parametr event (często skracany do e) z informacjami o zdarzeniu. Można z niego odczytać m.in. typ zdarzenia, element źródłowy czy klawisze myszy/klawiatury. [web:18]
console.log("Typ zdarzenia: " + e.type); // "click"
e.preventDefault(); // Zatrzymuje domyślną akcję (np. wysłanie formularza)
});
ĆwiczenieZadania praktyczne
Zadanie 1: Prosta funkcja z return (podstawowe)
Napisz funkcję obliczPodatek(kwota), która przyjmuje kwotę jako argument i zwraca kwotę powiększoną o stały podatek 23%.
function obliczPodatek(kwota) {
const stawkaPodatku = 0.23;
const kwotaZPodatkiem = kwota * (1 + stawkaPodatku);
return kwotaZPodatkiem;
}
const wynikKoncowy = obliczPodatek(100);
console.log("Kwota z podatkiem: " + wynikKoncowy); // 123
Zadanie 2: Interaktywny licznik (ponadpodstawowe)
Stwórz przycisk o ID btn-dodaj i element o ID licznik-display (z początkową wartością 0). Po kliknięciu przycisku licznik ma zwiększać się o 1.
let licznik = 0;
const przycisk = document.getElementById("btn-dodaj");
const display = document.getElementById("licznik-display");
function aktualizujLicznik() {
licznik++;
display.textContent = licznik;
}
if (przycisk && display) {
przycisk.addEventListener("click", aktualizujLicznik);
}
Zadanie 3: Modułowy skrypt (wyzwanie)
Przebuduj kod z Zadania 2 w bardziej modułowy sposób, umieszczając całą logikę (zmienne, pobieranie elementów, funkcję i listener) w jednej funkcji anonimowej natychmiast wywoływanej (IIFE), aby nie zaśmiecać zasięgu globalnego.
(function () {
let licznik = 0;
const przycisk = document.getElementById("btn-dodaj");
const display = document.getElementById("licznik-display");
function aktualizujLicznik() {
licznik++;
display.textContent = licznik;
}
if (przycisk && display) {
przycisk.addEventListener("click", aktualizujLicznik);
}
})(); // IIFE
MateriałyNarzędzia i linki
- MDN Web Docs: dokumentacja funkcji i zdarzeń JavaScript (hasła „Functions”, „Events”, „addEventListener”). [web:18]
- Kursy INF.03: szkolenia z JavaScript pod egzamin zawodowy (np. technikinformatyk / kursjs). [web:12][web:18]
- Ćwiczenia: wyszukaj „JavaScript DOM events tutorial”, aby poćwiczyć obsługę zdarzeń i interakcji z elementami strony. [web:4]