Skip to content

Zbuduj własny system - Pakiet 2 kursów: Automatyzacje i Budowa Agentów AI

Sprawdź ofertę →

Automatyzacje i Agenci AI

Sprawdź
Devstock Academy
  • O nas
  • Moduły Akademii
    • Moduł 1
    • Moduł 2
    • Moduł 3
    • Pozostałe moduły
  • Kursy AI
    • Pierwsza Misja AI (darmowy)
    • Automatyzacje i Budowa Agentów AI (n8n 2.0)
  • Blog
  • Kontakt
  • O nas
  • Moduły Akademii
    • Moduł 1
    • Moduł 2
    • Moduł 3
    • Pozostałe moduły
  • Kursy AI
    • Pierwsza Misja AI (darmowy)
    • Automatyzacje i Budowa Agentów AI (n8n 2.0)
  • Blog
  • Kontakt
Devstock Academy Banner
Programowanie i Technologie Webowe

Funkcje w JavaScript – jak działają i jak je tworzyć

  • 13 paź, 2024
  • Komentarze 0
funkcje js funkcja javascript

Funkcje to nieodzowny element JavaScript, który pozwala przekształcać proste skrypty w dynamiczne, skalowalne aplikacje. Używając funkcji, możesz pisać kod, który jest nie tylko bardziej zorganizowany, ale również łatwiejszy do zrozumienia i ponownego wykorzystania. W tym artykule przyjrzymy się, jak definiować i wykorzystywać funkcje w JavaScript, zaczynając od podstaw, a kończąc na zaawansowanych technikach, takich jak hoisting czy zarządzanie kontekstem this. # funkcje js

JavaScript – co to jest i jak zacząć naukę?

Czym są funkcje w JavaScript?

W języku JavaScript, funkcje to bloki kodu zaprojektowane do wykonywania określonego zadania. Pozwalają one na kapsułkowanie zestawu instrukcji, które mogą być wielokrotnie wywoływane w różnych miejscach programu. Dzięki temu możemy tworzyć własne funkcje, które upraszczają kod i czynią go bardziej czytelnym.

Dokumentacja funkcji na MDN Web Docs

Dlaczego używamy funkcji?

  • Reużywalność kodu: Funkcje pozwalają na ponowne wykorzystanie tego samego kodu bez konieczności jego kopiowania.

  • Modularność: Dzieląc kod na mniejsze funkcje, ułatwiamy jego utrzymanie i debugowanie.

  • Czytelność: Dobrze nazwane funkcje zwiększają czytelność kodu.

Tworzenie funkcji w JavaScript

Istnieje kilka sposobów definiowania funkcji w JavaScript. Omówimy trzy główne metody: deklaracja funkcji, wyrażenie funkcyjne oraz funkcja strzałkowa.

1. Deklaracja funkcji (Function Declaration)

Najbardziej podstawowy sposób tworzenia funkcji w JavaScript.

Składnia:

function nazwaFunkcji(parametry) {
  // ciało funkcji
  // instrukcje do wykonania
  return wartośćZwracana;
}

Przykład funkcji dodającej dwie liczby:

function suma(a, b) {
  return a + b;
}

Przykład deklaracji funkcji, która sumuje dwie liczby. Funkcje zdefiniowane w ten sposób podlegają hoistingowi.

Uruchamianie funkcji:

let wynik = suma(5, 3);
console.log(wynik); // Wyświetli 8

2. Wyrażenie funkcyjne (Function Expression)

Funkcja może być przypisana do zmiennej.

Składnia:

const nazwaFunkcji = function(parametry) {
  // ciało funkcji
  return wartośćZwracana;
};

Przykład:

const iloczyn = function(a, b) {
  return a * b;
};

console.log(iloczyn(4, 5)); // Wyświetli 20

Funkcja zapisana jako wyrażenie funkcyjne. Nie podlega hoistingowi, co oznacza, że można jej użyć dopiero po jej zdefiniowaniu.

Kurs programowania z gwarancją pracy - banner

3. Funkcje strzałkowe (Arrow Functions)

Wprowadzone w ES6, oferują bardziej zwięzłą składnię.

Składnia:

const nazwaFunkcji = (parametry) => {
  // ciało funkcji
  return wartośćZwracana;
};

Jeśli funkcja zawiera tylko jedną instrukcję zwracającą wartość, można ją uprościć:

const kwadrat = x => x * x;

console.log(kwadrat(5)); // Wyświetli 25

Przykład funkcji strzałkowej. Funkcje te mają zwięzłą składnię, ale nie posiadają własnego kontekstu this.

Funkcja strzałkowa nie posiada własnego kontekstu this, co może być zarówno zaletą, jak i wadą w zależności od sytuacji.

Diagram przedstawiający różne sposoby deklarowania funkcji - funkcje js funkcja javascript

Parametry i argumenty funkcji

Parametry to zmienne zadeklarowane w nawiasach podczas definiowania funkcji, które określają, jakie dane funkcja może przyjąć. Argumenty to rzeczywiste wartości przekazywane do funkcji podczas jej wywołania.

Przykład:

function powitanie(imie) {
  console.log(`Witaj, ${imie}!`);
}

powitanie('Anna'); // Wyświetli "Witaj, Anna!"

Przykład funkcji, która przyjmuje argument i wyświetla powitanie. Parametry są deklarowane w nawiasach podczas definiowania funkcji, a argumenty są wartościami przekazywanymi podczas jej wywołania.

Domyślne wartości parametrów

Możemy ustawić domyślne wartości dla parametrów, które zostaną użyte, jeśli argument nie zostanie przekazany.

function powitanie(imie = 'Gość') {
  console.log(`Witaj, ${imie}!`);
}

powitanie(); // Wyświetli "Witaj, Gość!"

Rest Operator (...)

Dzięki rest operator możemy przekazać dowolną liczbę argumentów do funkcji.

function suma(...liczby) {
  return liczby.reduce((a, b) => a + b, 0);
}

console.log(suma(1, 2, 3, 4)); // Wyświetli 10

Przykład funkcji wykorzystującej operator rest, która sumuje wszystkie przekazane argumenty.

Obiekt arguments

W tradycyjnych funkcjach dostępny jest obiekt arguments, który zawiera wszystkie przekazane do funkcji argumenty.

function pokazArgumenty() {
  console.log(arguments);
}

pokazArgumenty(1, 'tekst', true);
// Wyświetli [1, 'tekst', true]

Funkcja pokazująca, jak za pomocą obiektu arguments można uzyskać dostęp do wszystkich przekazanych argumentów. Obiekt ten nie jest dostępny w funkcjach strzałkowych.

Uwaga: W funkcjach strzałkowych obiekt arguments nie jest dostępny.

Ciało funkcji i zwracanie wartości

Ciało funkcji to blok kodu zawarty między klamrami {}. Funkcja może wykonywać różne operacje i opcjonalnie zwracać wartość za pomocą słowa kluczowego return.

Przykład:

function pomnoz(a, b) {
  let wynik = a * b;
  return wynik;
}

let iloczyn = pomnoz(6, 7);
console.log(iloczyn); // Wyświetli 42

Przykład funkcji, która wykonuje operację mnożenia i zwraca wynik. Słowo kluczowe return zwraca wartość z funkcji, którą można przypisać do zmiennej.

Jeśli funkcja nie zawiera instrukcji return, domyślnie zwraca undefined.

Funkcje anonimowe

Funkcja anonimowa to funkcja bez nazwy. Często używana w miejscach, gdzie funkcja jest przekazywana jako argument do innej funkcji.

Przykład:

setTimeout(function() {
  console.log('Minęły 2 sekundy');
}, 2000);

Przykład funkcji anonimowej, która nie posiada nazwy. Często używana w przypadku przekazywania funkcji jako argumentów do innych funkcji.

Można również użyć funkcji strzałkowej:

setTimeout(() => {
  console.log('Minęły 2 sekundy');
}, 2000);

Funkcje jako wartości

W JavaScript funkcje są obiektami pierwszej klasy, co oznacza, że mogą być traktowane jak inne wartości – przypisywane do zmiennych, przekazywane jako argumenty i zwracane przez inne funkcje.

Funkcje wyższego rzędu

Funkcje, które przyjmują inne funkcje jako argumenty lub zwracają funkcje.

Przykład:

function wykonajOperacje(a, b, operacja) {
  return operacja(a, b);
}

function dodaj(a, b) {
  return a + b;
}

function odejmij(a, b) {
  return a - b;
}

console.log(wykonajOperacje(10, 5, dodaj));   // Wyświetli 15
console.log(wykonajOperacje(10, 5, odejmij)); // Wyświetli 5

Funkcja wyższego rzędu przyjmująca inną funkcję jako argument. Tego typu funkcje pozwalają na bardziej dynamiczne i elastyczne rozwiązania.

Zastosowanie funkcji w praktyce

Praca z tablicami

Funkcje są często używane w metodach tablic, takich jak map, filter, reduce.

Przykład:

const liczby = [1, 2, 3, 4, 5];

const kwadraty = liczby.map(function(liczba) {
  return liczba * liczba;
});

console.log(kwadraty); // Wyświetli [1, 4, 9, 16, 25]

Obsługa zdarzeń

W programowaniu webowym, funkcje są kluczowe w obsłudze zdarzeń.

Przykład:

document.getElementById('przycisk').addEventListener('click', function(event) {
  console.log('Przycisk został kliknięty');
});

Możemy również użyć funkcji strzałkowej:

document.getElementById('przycisk').onclick = () => {
  console.log('Przycisk został kliknięty');
};

Diagram przedstawiający przepływ zdarzeń w przeglądarce - funkcje js funkcja javascript

Opis działania diagramu:

  1. Capture Phase (Faza przechwytywania): W tej fazie przeglądarka “schodzi” po drzewie DOM od korzenia do elementu docelowego.

  2. Target Phase (Faza celu): To moment, w którym zdarzenie dotrze do elementu, który wywołał zdarzenie.

  3. Bubble Phase (Faza bąbelkowania): Zdarzenie bąbelkuje (przechodzi z powrotem w górę przez drzewo DOM).

Diagram przedstawia te trzy fazy przepływu zdarzeń w przeglądarce, od przechwytywania, przez osiągnięcie celu, aż po bąbelkowanie.

Kontekst this w funkcjach

Kontekst this odnosi się do obiektu, na którym funkcja jest wywoływana.

W funkcjach deklarowanych i wyrażeniach funkcyjnych

document.getElementById('przycisk').onclick = () => {
  console.log('Przycisk został kliknięty');
};

W funkcjach strzałkowych

Funkcje strzałkowe nie mają własnego kontekstu this i dziedziczą go z otaczającego zakresu.

const osoba = {
  imie: 'Jan',
  przedstawSie: () => {
    console.log(`Nazywam się ${this.imie}`);
  }
};

osoba.przedstawSie(); // Wyświetli "Nazywam się undefined"

Hoisting funkcji

W JavaScript funkcje zdefiniowane przez deklarację funkcji są przenoszone na górę zakresu podczas kompilacji (hoisting). Dzięki temu możemy wywołać funkcję przed jej definicją.

Przykład:

powitanie('Ania');

function powitanie(imie) {
  console.log(`Cześć, ${imie}!`);
}

Natomiast wyrażenia funkcyjne i funkcje strzałkowe nie podlegają hoistingowi.

Rekursja – funkcje wywołujące same siebie

Funkcja może wywoływać samą siebie, co nazywamy rekursją.

Przykład: Obliczanie silni liczby

function silnia(n) {
  if (n === 0) {
    return 1;
  } else {
    return n * silnia(n - 1);
  }
}

console.log(silnia(5)); // Wyświetli 120

Destrukturyzacja w funkcjach

Destrukturyzacja pozwala na rozpakowanie wartości z tablic lub obiektów, co umożliwia łatwiejszy dostęp do tych danych i uproszczenie kodu.

Przykład z obiektem:

function pokazDane({ imie, wiek }) {
  console.log(`Imię: ${imie}, Wiek: ${wiek}`);
}

const osoba = { imie: 'Kasia', wiek: 30 };
pokazDane(osoba); // Wyświetli "Imię: Kasia, Wiek: 30"

Przykład z tablicą:

function pokazElementy([pierwszy, drugi]) {
  console.log(`Pierwszy: ${pierwszy}, Drugi: ${drugi}`);
}

const liczby = [10, 20];
pokazElementy(liczby); // Wyświetli "Pierwszy: 10, Drugi: 20"

Funkcje w programowaniu obiektowym

W JavaScript możemy tworzyć obiekty z metodami (funkcjami należącymi do obiektu), co jest podstawą programowania obiektowego.

Przykład:

const kalkulator = {
  dodaj: function(a, b) {
    return a + b;
  },
  odejmij: function(a, b) {
    return a - b;
  }
};

console.log(kalkulator.dodaj(7, 5));   // Wyświetli 12
console.log(kalkulator.odejmij(7, 5)); // Wyświetli 2

Wykorzystanie wbudowanych funkcji i obiektów

JavaScript oferuje wiele wbudowanych funkcji i obiektów, które ułatwiają programowanie. Jednym z nich jest obiekt Math, który zawiera wiele przydatnych metod matematycznych.

Obiekt Math

Obiekt Math dostarcza funkcje matematyczne, takie jak obliczanie potęg, pierwiastków, wartości trygonometrycznych itp.

Przykład:

let liczba = Math.pow(2, 3); // 2 do potęgi 3
console.log(liczba); // Wyświetli 8

Funkcja Math.min

Funkcja Math.min zwraca najmniejszą wartość spośród przekazanych argumentów.

Przykład:

let najmniejsza = Math.min(10, 5, 8, 3);
console.log(najmniejsza); // Wyświetli 3

Możemy użyć funkcji strzałkowej i rest operatora, aby znaleźć najmniejszy element w tablicy.

const liczby = [7, 2, 9, 4];
let min = Math.min(...liczby);
console.log(min); // Wyświetli 2

Wskazówki i najlepsze praktyki

  • Nazewnictwo: Nadawaj funkcjom nazwy opisujące ich działanie, aby kod był bardziej czytelny i zrozumiały dla innych programistów.
  • Jedna odpowiedzialność: Funkcja powinna wykonywać jedno konkretne zadanie, co zwiększa jej przejrzystość i ułatwia jej testowanie.
  • Komentarze: Dokumentuj funkcje, opisując ich parametry i zwracane wartości, dzięki czemu inni programiści będą mogli szybciej zrozumieć, jak działa dana funkcja.
  • Unikaj zbyt wielu parametrów: Jeśli funkcja przyjmuje zbyt wiele parametrów, rozważ przekazanie obiektu jako argumentu, ponieważ to upraszcza strukturę funkcji i zwiększa jej czytelność.
  • Unikaj efektów ubocznych: Funkcje powinny być jak najbardziej przewidywalne, co pomaga utrzymać kod łatwy do debugowania i testowania.

Podsumowanie

Funkcje JS są nieodłącznym elementem programowania w języku JavaScript. Pozwalają na tworzenie modularnego, czytelnego i efektywnego kodu. Znajomość różnych sposobów definiowania funkcji, zarządzania parametrami i argumentami, a także rozumienie kontekstu this i hoistingu, to kluczowe umiejętności dla każdego programisty JavaScript. Dzięki praktycznym przykładom pokazaliśmy, jak tworzyć i wykorzystywać funkcje w różnych scenariuszach.

Zapraszamy do dalszej nauki i eksperymentowania z funkcjami w JavaScript. Im więcej praktyki zdobędziesz, tym łatwiej będzie Ci tworzyć złożone aplikacje i efektywnie korzystać z mocy, jaką oferują funkcje JS. # funkcje w js

akademia devstock banner

Poznaj historie absolwentów Akademii Devstock

Slide 16_9 - 94_Easy-Resize.com
Slide 16_9 - 115_Easy-Resize.com
Slide 16_9 - 116_Easy-Resize.com
Slide 16_9 - 114_Easy-Resize.com
Slide 16_9 - 117_Easy-Resize.com
Chcę dowiedzieć się więcej o Akademii Devstock
Udostępnij na:
Node.js i JavaScript – wprowadzenie do programowania po stronie serwera
Operator trójargumentowy (ternary operator) w JavaScript – jak uprościć warunki w kodzie

Zostaw komentarz :) Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Baner reklamowy odzyskaj 10h tygodniowo

Najnowsze wpisy

Thumb
Dlaczego drożeje pamięć RAM? 5 faktów o
16 sty, 2026
Thumb
Dlaczego coraz więcej programistów wybiera MacBooka Pro?
09 sty, 2026
Thumb
Samuel Altman: od non-profitu do imperium. Sześć
07 sty, 2026

Kursy Samodzielne

  • Grafika promocyjna kursu z tytułem "KURS – AUTOMATYZACJE I BUDOWANIE AGENTÓW AI" z wyraźnym oznaczeniem narzędzia "n8n 2.0".
    Pakiet 2 kursów: Automatyzacje i Budowa Agentów AI
    3980,00 zł Pierwotna cena wynosiła: 3980,00 zł.1990,00 złAktualna cena wynosi: 1990,00 zł.
Banner reklamowy- system AI pracuje gdy śpisz
klarna raty 0% - banner
Droga do kariery z Akademią Devstock
Banner reklamowy whitepress
Banner reklamowy - stwórz własną armię agentów AI

Tagi

5G AI Architektura Cyberbezpieczeństwo Feedback Frontend Git IoT JavaScript Motywacja Nauka efektywna Optymalizacja i wydajność Programowanie React.JS Rozwój osobisty WebDevelopment
Logo FitBody Center Warszawa
Dołącz do społeczności DEVSTOCK - banner reklamowy

Produkty

  • Grafika promocyjna kursu z tytułem "KURS – AUTOMATYZACJE I BUDOWANIE AGENTÓW AI" z wyraźnym oznaczeniem narzędzia "n8n 2.0".
    Pakiet 2 kursów: Automatyzacje i Budowa Agentów AI
    3980,00 zł Pierwotna cena wynosiła: 3980,00 zł.1990,00 złAktualna cena wynosi: 1990,00 zł.

Odkryj zabiegi Endermologii LPG Infinity w FitBody Center Warszawa

Maszyna zabiegowa - endermologia lpg infinity
Group-5638-1

Devstock – Akademia programowania z gwarancją pracy

🏠 ul. Bronowska 5a,
03-995 Warszawa
📞 +48 517 313 589
✉️ contact@devstockacademy.pl

Linki

  • Poznaj firmę Devstock
  • Wejdź do społeczności Devstock
  • Polityka prywatności
  • Regulamin

FitBody Center

Strona

  • Strona główna
  • Kontakt

Newsletter

Bądź na bieżąco, otrzymuj darmową wiedzę i poznaj nas lepiej!


Icon-facebook Icon-linkedin2 Icon-instagram Icon-youtube Tiktok
Copyright 2026 Devstock. Wszelkie prawa zastrzeżone
Devstock AcademyDevstock Academy
Sign inSign up

Sign in

Don’t have an account? Sign up
Lost your password?

Sign up

Already have an account? Sign in