Tüm blog yazıları

JavaScript’te Arrow Function (Ok Fonksiyonları)

JavaScript öğrenmeye başlayan birçok kişinin karşılaştığı modern yazım biçimlerinden biri arrow function (ok fonksiyonları) olarak bilinir. Fonksiyonlar, bir işlemi tekrar tekrar yapmamız gerektiğinde kodu tek yerde tanımlamamızı sağlar. Ancak klasik fonksiyo

eminbasbayan4 dk okuma
JavaScript’te Arrow Function (Ok Fonksiyonları)

JavaScript öğrenmeye başlayan birçok kişinin karşılaştığı modern yazım biçimlerinden biri arrow function (ok fonksiyonları) olarak bilinir. Fonksiyonlar, bir işlemi tekrar tekrar yapmamız gerektiğinde kodu tek yerde tanımlamamızı sağlar. Ancak klasik fonksiyon yazımı zaman zaman uzun ve karmaşık olabilir. Arrow function, bu noktada daha kısa, sade ve okunabilir bir alternatif sunar. Ayrıca bazı durumlarda return kelimesini bile yazmamıza gerek kalmaz; bu özelliğe implicit return (örtük dönüş) denir.

Bu makalede, arrow function’ların temelini, kullanım kurallarını ve implicit return özelliğini örneklerle birlikte ele alacağız.

1. Geleneksel Fonksiyon Yazımı

Klasik fonksiyon tanımı şu şekilde yapılır:

jsx
function selamVer(isim) {
  return `Merhaba, ${isim}`;
}

Bu fonksiyon bir isim parametresi alır ve ona göre bir selam döndürür. Ancak her defasında function kelimesini yazmak kodu uzatabilir.

2. Arrow Function ile Aynı Fonksiyon

Yukarıdaki fonksiyonu arrow function ile şöyle yazabiliriz:

jsx
const selamVer = (isim) => {
  return `Merhaba, ${isim}`;
}

Burada function yerine => (ok işareti) kullanılır. Daha kısa ve okunabilir bir yapı sunar.

3. Tek Parametrede Parantezleri Kaldırmak

Eğer fonksiyon sadece bir parametre alıyorsa parantezler opsiyoneldir:

jsx
const kareAl = sayi => {
  return sayi * sayi;
}

Ama parametre yoksa veya birden fazla parametre varsa parantezler zorunludur.

4. Parametresiz Fonksiyonlarda Parantez Zorunluluğu

Fonksiyon parametre almıyorsa () mutlaka yazılır:

jsx
const rastgeleSayi = () => {
  return Math.floor(Math.random() * 100);
}

Aksi halde JavaScript hata verir.

5. Implicit Return Nedir?

Arrow function’ların en önemli özelliklerinden biri implicit return yani örtük dönüş’tür.

Eğer fonksiyonunuz sadece tek satırlık bir işlem yapıyorsa return yazmadan da değer döndürebilirsiniz.

Örnek:

jsx
const ciftMi = sayi => sayi % 2 === 0;

Burada süslü parantez ({}) kullanılmadığı için JavaScript otomatik olarak işlem sonucunu döndürür.

Aynı şekilde şu fonksiyon da implicit return ile yazılabilir:

jsx
// Normal
const kare = (sayi) => {
  return sayi * sayi;
}

// Implicit return
const kare = sayi => sayi * sayi;

6. Implicit Return Kullanılamayan Durumlar

Eğer fonksiyon gövdesinde birden fazla işlem varsa, return yazmak zorunludur.

Geçersiz Örnek:

jsx
// Hata verir
const tersCevir = kelime => (
  let harfler = kelime.split(""); // hata!
  harfler.reverse().join("");
);

Doğru Yazım:

jsx
const tersCevir = kelime => {
  let harfler = kelime.split("");
  return harfler.reverse().join("");
};

Yani tek satırlık – tek işlem dışındaki durumlarda süslü parantez {} ve return kullanmalıyız.

7. Birden Fazla Parametrede Kullanım

Fonksiyon birden fazla parametre alıyorsa parantez mecburidir:

jsx
const carp = (a, b) => a * b;

8. Gerçek Hayattan Kısa Örnekler

  • Pozitif mi?

    jsx
    const pozitifMi = n => n > 0;
  • İki sayının farkı

    jsx
    const fark = (a, b) => a - b;
  • Dizi metotlarında kullanım

    jsx
    const notlar = [40, 55, 70, 85, 90];
    const gectiMi = notlar.map(n => n >= 50);

Bu örnekte map fonksiyonuyla her notun 50’den büyük olup olmadığı kontrol edilir.

9. Arrow Function Ne Zaman Tercih Edilmeli?

  • Callback fonksiyonlarda (map, filter, forEach gibi).
  • Tek satırlık kısa işlemlerde.
  • Kodun okunabilirliğini artırmak istediğinizde.
  • Modern projelerde standart hale geldiği için.

Ancak her durumda arrow function kullanmak zorunda değiliz.

Özellikle this bağlamı gereken yerlerde klasik fonksiyon daha uygun olabilir.

10. Özet Tablo

DurumYazım Şekli
Tek işlem – tek satırconst f = x => x + 1;
Tek işlem – süslü parantez varsareturn zorunlu
Birden fazla işlemconst f = x => { let y = x*2; return y }
Tek parametreParantez opsiyoneldir (x => ...)
Parametre sayısı 0 veya 2+Parantez zorunlu (() => ..., (a, b) => ...)

Sonuç

Arrow function’lar modern JavaScript’in en çok kullanılan özelliklerinden biridir.

  • Yazımı kısaltır,
  • Okunabilirliği artırır,
  • Özellikle callback fonksiyonlarda çok kullanışlıdır.

Implicit return sayesinde tek satırlık işlemler çok daha sade yazılabilir. Ancak birden fazla işlem varsa klasik return yapısını kullanmak gerekir.

Kendi projelerinde bu kuralları bilerek kullanırsan kodların hem daha kısa hem de daha anlaşılır olur.

JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele