⚙️ 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 |