⚙️ Funkcije u JavaScriptu

Što su funkcije?

Funkcija je blok koda koji možemo napisati jednom, a pozivati koliko god puta želimo. Koristimo ih kako ne bismo pisali isti kod više puta.

Zamisli funkciju kao recept - napišeš ga jednom i možeš ga slijediti koliko god puta hoćeš.

// Definicija funkcije function pozdravi() { console.log("Zdravo!"); } // Poziv funkcije pozdravi(); // Zdravo! pozdravi(); // Zdravo! pozdravi(); // Zdravo! - možemo je pozivati koliko god puta

Funkcija s parametrima

Parametri su vrijednosti koje šaljemo u funkciju. Funkcija ih koristi u svom radu.

// Funkcija prima jedan parametar function pozdravi(ime) { console.log("Zdravo, " + ime + "!"); } pozdravi("Ana"); // Zdravo, Ana! pozdravi("Marko"); // Zdravo, Marko! // Funkcija s više parametara function zbrojiBrojeve(a, b) { console.log(a + b); } zbrojiBrojeve(5, 3); // 8 zbrojiBrojeve(10, 20); // 30

Vraćanje vrijednosti (return)

Funkcija može i vratiti vrijednost pomoću ključne riječi return. Tu vrijednost možemo spremiti u varijablu.

// Funkcija vraća zbroj function zbroji(a, b) { return a + b; // Vraćamo rezultat } // Koristimo vraćenu vrijednost let rezultat = zbroji(5, 3); console.log(rezultat); // 8 // Funkcija za izračun površine pravokutnika function povrsina(sirina, visina) { return sirina * visina; } let p = povrsina(4, 6); console.log("Površina je: " + p); // Površina je: 24

Arrow funkcije (novi način pisanja)

U modernom JavaScriptu (ES6+) možemo pisati funkcije kraće, pomoću strelice =>. Zovu se "arrow funkcije".

// Obična funkcija function kvadrat(x) { return x * x; } // Ista funkcija kao arrow function - kraće! const kvadrat2 = (x) => x * x; // Poziv je isti console.log(kvadrat(4)); // 16 console.log(kvadrat2(4)); // 16 // Arrow funkcija s više parametara const zbroji = (a, b) => a + b; console.log(zbroji(3, 7)); // 10

Praktični primjeri

// Provjera je li broj paran function jeParan(broj) { if (broj % 2 === 0) { return true; } else { return false; } } console.log(jeParan(4)); // true console.log(jeParan(7)); // false // Pretvorba Celsiusa u Fahrenheit function celsiusUFahrenheit(c) { return (c * 9/5) + 32; } console.log(celsiusUFahrenheit(0)); // 32 console.log(celsiusUFahrenheit(100)); // 212 // Funkcija za pozdrav ovisno o dobu dana function dobrodosao(sati) { if (sati < 12) { return "Dobro jutro!"; } else if (sati < 18) { return "Dobar dan!"; } else { return "Dobra večer!"; } } console.log(dobrodosao(8)); // Dobro jutro! console.log(dobrodosao(14)); // Dobar dan!

Pregled tipova funkcija

Tip Sintaksa Napomena
Obična funkcija function ime() { } Klasičan način, uvijek koristiti za početnike
Arrow funkcija const ime = () => { } Kraći zapis, ES6+
Anonymna funkcija function() { } Bez imena, obično za event listeners