Fonksiyon = tekrar tekrar çağrılabilen, parametre alıp değer döndürebilen bir kod bloğu. JavaScript'te fonksiyonlar birinci sınıf vatandaştır: değişkene atanabilir, parametre olarak geçilebilir, döndürülebilir.
Function declaration
function selamla(isim) {
return `Merhaba, ${isim}!`;
}
selamla("Furkan"); // "Merhaba, Furkan!"Hoist edilir — tanımlanmadan önce de çağrılabilir.
Function expression
const selamla = function (isim) {
return `Merhaba, ${isim}!`;
};Hoist edilmez. const neredeyse her zaman tercih sebebidir.
Arrow function (ok fonksiyonu)
ES6 ile gelen kompakt sözdizimi:
const selamla = (isim) => `Merhaba, ${isim}!`;
const topla = (a, b) => a + b;
const kare = (x) => x * x;
// Çoklu satır
const fiyatla = (urun) => {
const vergi = urun.fiyat * 0.18;
return urun.fiyat + vergi;
};Tek parametre varsa parantez opsiyoneldir, tek satır return ise süslü
parantez ve return opsiyoneldir.
Arrow function'ların kendi this'i yoktur — bulundukları kapsamın this'ini
kullanırlar. Detayı bölüm 21'de.
Varsayılan parametreler
function selamla(isim = "Misafir") {
return `Merhaba, ${isim}!`;
}
selamla(); // "Merhaba, Misafir!"
selamla("Ali"); // "Merhaba, Ali!"Rest parametreleri (...)
Geriye kalan tüm argümanları diziye toplar:
function topla(...sayilar) {
return sayilar.reduce((a, b) => a + b, 0);
}
topla(1, 2, 3); // 6
topla(1, 2, 3, 4, 5); // 15Fonksiyon parametre olarak
Callback (geri çağrım) yaygın bir pattern'dir:
function tekrarla(n, callback) {
for (let i = 0; i < n; i++) callback(i);
}
tekrarla(3, (i) => console.log(`tur ${i}`));IIFE (Immediately Invoked Function Expression)
Tanımlandığı anda çağrılan fonksiyon. Eski dönemde scope korumak için
kullanılırdı, modern kodda let/const block scope sayesinde gerek yok:
(function () {
const gizli = 42;
console.log(gizli);
})();Saf fonksiyonlar (pure functions)
İdeal: aynı input → aynı output, dış dünyaya etki etmez.
// ✅ saf
function topla(a, b) {
return a + b;
}
// ❌ saf değil — dış değişkene yazıyor
let toplam = 0;
function ekle(x) {
toplam += x;
}Saf fonksiyonlar test edilmesi en kolay olanlardır.