Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Web Geliştirmede JavaScript Fonksiyonları: Temelden Ustalaşmaya Giden Yol 🧠

asteron

Üye
Katılım
14 Mart 2026
Mesajlar
9
Web Geliştirmede JavaScript Fonksiyonları: Temelden Ustalaşmaya Giden Yol 🧠

Selam dostlar! Bugün sizlerle, JavaScript'in bel kemiği diyebileceğimiz, her seviyeden geliştiricinin mutlaka sağlam temeller atması gereken bir konuyu ele alacağız: Fonksiyonlar. Forumda sıkça "JavaScript'te nereden başlamalıyım?" soruları görüyorum. Cevabın ilk durağı kesinlikle fonksiyonları anlamaktır. Bu rehberde, sadece `function` yazıp geçmeyeceğiz. Onları gerçekten nasıl "düşüneceğimizi", farklı türlerini ve günlük kodlama pratiğimizde nasıl daha etkili kullanacağımızı konuşacağız. Hadi başlayalım! ⚙️

Fonksiyon Nedir ve Neden Bu Kadar Önemli?
Basitçe söylemek gerekirse, bir fonksiyon, belirli bir görevi yerine getirmek için tasarlanmış yeniden kullanılabilir kod bloklarıdır. Bir şeyi tekrar tekrar yazmak yerine, onu bir fonksiyonun içine paketler ve ihtiyacınız olduğunda çağırırsınız. Bu:
  • Kodunuzu daha kısa ve okunabilir yapar.
  • Değişiklik yapmanız gerektiğinde sadece bir yeri değiştirirsiniz.
  • Kodu mantıksal parçalara ayırmanızı sağlar (modülerlik).
  • Hataları bulmayı ve test etmeyi kolaylaştırır.
Yani, fonksiyonlar sadece bir syntax değil, düşünme biçimidir.

Fonksiyon Tanımlamanın 3 Yaygın Yolu
JavaScript esnek bir dil ve fonksiyonları tanımlamanın birkaç yolu var. Hangisini nerede kullanacağını bilmek önemli.

  • Fonksiyon Deklarasyonu (Function Declaration): En geleneksel yöntem.
    Kod:
    function merhabaDe(isim) {
        return `Merhaba, ${isim}!`;
    }
    console.log(merhabaDe("Ahmet")); // "Merhaba, Ahmet!"
    Özelliği: "Hoisting" denen bir özellik sayesinde, dosyanın neresinde tanımlanırsa tanımlansın, en başta tanımlanmış gibi davranır. Yani, tanımlamadan önce de çağırabilirsiniz.
  • Fonksiyon İfadesi (Function Expression): Bir fonksiyonu bir değişkene atamak.
    Kod:
    const merhabaIfade = function(isim) {
        return `Selam, ${isim}!`;
    };
    console.log(merhabaIfade("Ayşe")); // "Selam, Ayşe!"
    Özelliği: Genellikle bu fonksiyon isimsizdir (anonim). Hoisting özelliği yoktur. Değişken tanımlanana kadar çağrılamaz. Callback fonksiyonlarda sık kullanılır.
  • Ok Fonksiyonları (Arrow Functions - ES6): Modern ve kısa syntax.
    Kod:
    const merhabaOk = (isim) => {
        return `Hey, ${isim}!`;
    };
    // Tek parametre ve tek satır return için süper kısa hali:
    const kareAl = x => x * x;
    console.log(kareAl(5)); // 25
    Özelliği: Kısa ve özdür. `this` anahtar kelimesinin bağlanma şekli farklıdır (kapsamını dışarıdan alır). Bu, özellikle event listener'larda ve array metotlarında (`map`, `filter`) hayat kurtarıcıdır.

Parametreler, Argümanlar ve Varsayılan Değerler
Fonksiyonlar dış dünyadan bilgi alabilir. Bu bilgilere fonksiyon tanımındayken parametre, fonksiyonu çağırırken verdiğimiz değerlere ise argüman denir.
Kod:
function topla(a, b) { // a ve b parametre
    return a + b;
}
topla(3, 5); // 3 ve 5 argüman
Eğer bir argüman gönderilmezse, değer `undefined` olur. Bunu engellemek için varsayılan parametre (default parameter) kullanabiliriz. 🚀
Kod:
function selamVer(isim = "Misafir") {
    console.log(`Hoş geldin, ${isim}!`);
}
selamVer(); // "Hoş geldin, Misafir!"
selamVer("Zeynep"); // "Hoş geldin, Zeynep!"

Return: Fonksiyonun Verdiği Söz
`return` ifadesi, fonksiyonun işini yaptıktan sonra bize bir sonuç döndürmesini sağlar. Döndürülen bu değeri bir değişkende saklayabilir, başka bir fonksiyona parametre olarak verebiliriz.
Kod:
function fiyatHesapla(miktar, birimFiyat) {
    let toplam = miktar * birimFiyat;
    let kdvliToplam = toplam * 1.18;
    return kdvliToplam; // Fonksiyonun "çıktısı" budur.
}
let odenecek = fiyatHesapla(2, 100); // odenecek = 236
Uyarı: `return`'den sonra yazılan hiçbir kod çalışmaz. Fonksiyon orada durur.

Pratikte Fonksiyonları Nasıl Kullanırız?
Teori güzel de pratikte ne işe yarar? İşte birkaç gerçekçi senaryo:
  • Olay (Event) İşleyicileri: Bir butona tıklandığında ne olacağını bir fonksiyonla tanımlarız.
  • Veri İşleme/Dönüştürme: API'den gelen karmaşık bir veri listesini, ekrana basılacak hale getirmek için `map()` ile birlikte ok fonksiyonları kullanırız.
  • Tekrarlanan UI İşlemleri: Sayfada bir uyarı mesajı göstermek, bir modal penceresini açıp kapamak gibi işler için fonksiyon yazarsınız.

Küçük Bir Uygulama: Basit Bir Görev Yöneticisi
Hadi öğrendiklerimizi basit bir örnekle pekiştirelim. 💻
Kod:
// Görevleri tutacağımız dizi
let gorevler = [];

// 1. Görev ekleme fonksiyonu
const gorevEkle = (gorevAdi) => {
    gorevler.push({ ad: gorevAdi, tamamlandi: false });
    console.log(`"${gorevAdi}" görevi eklendi.`);
};

// 2. Görevleri listeleme fonksiyonu
const gorevleriListele = () => {
    console.log("--- Görev Listesi ---");
    gorevler.forEach((gorev, index) => {
        let durum = gorev.tamamlandi ? "✅" : "⏳";
        console.log(`${index + 1}. ${durum} ${gorev.ad}`);
    });
};

// 3. Görev tamamlama fonksiyonu
const gorevTamamla = (index) => {
    if (gorevler[index]) {
        gorevler[index].tamamlandi = true;
        console.log(`"${gorevler[index].ad}" görevi tamamlandı olarak işaretlendi.`);
    } else {
        console.log("Geçersiz görev numarası!");
    }
};

// Fonksiyonları kullanalım
gorevEkle("JavaScript çalış");
gorevEkle("Market alışverişi yap");
gorevleriListele();
gorevTamamla(0);
gorevleriListele();
Bu örnekte, farklı fonksiyon türlerini ve nasıl birlikte çalıştıklarını görebilirsiniz. Her fonksiyon tek bir iş yapıyor (Single Responsibility Principle).

Son Sözler
Fonksiyonlar, JavaScript'te ustalaşma yolculuğunuzdaki en güçlü araçlarınızdan biridir. Başlangıçta sadece kod tekrarını önlemek için kullansanız da, zamanla onları daha büyük problemleri küçük, yönetilebilir parçalara ayırmak için kullanacaksınız. İlk adım, bol bol pratik yapmak. Kendi küçük projelerinizde her şeyi tek bir yere yazmak yerine, "Acaba bunu bir fonksiyona ayırabilir miyim?" diye sormaya başlayın.

Unutmayın, iyi yazılmış bir fonksiyon, kendini açıklayıcıdır. İsmi ne yaptığını anlatır, içi sade ve odaklıdır. Bu konuda kendinizi geliştirdikçe, yazdığınız kodların kalitesi de gözle görülür şekilde artacak.

Umarım bu rehber faydalı olmuştur. Takıldığınız yerleri forumda sormaktan çekinmeyin. Hep birlikte öğreniyoruz! Bir sonraki yazıda görüşmek üzere, kodlamaya devam! 👨‍💻👩‍💻
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Geri