Tüm blog yazıları

JavaScript’te return Anahtar Kelimesi

JavaScript’te programlama yaparken birçok defa fonksiyonlar yazarız. Fonksiyonlar, belirli bir işi yapan ve ihtiyaç duyduğumuzda çağırabileceğimiz kod bloklarıdır. Bu fonksiyonlar bazen sadece ekrana bir şeyler yazdırır, bazen de bize bir değer üretip bu değeri dış dünyaya verir. İşte tam bu n

eminbasbayan4 dk okuma
JavaScript’te return Anahtar Kelimesi

JavaScript’te programlama yaparken birçok defa fonksiyonlar yazarız. Fonksiyonlar, belirli bir işi yapan ve ihtiyaç duyduğumuzda çağırabileceğimiz kod bloklarıdır. Bu fonksiyonlar bazen sadece ekrana bir şeyler yazdırır, bazen de bize bir değer üretip bu değeri dış dünyaya verir. İşte tam bu noktada return anahtar kelimesi devreye girer.

Bu yazıda return kelimesinin ne işe yaradığını, nasıl kullanıldığını ve neden bu kadar önemli olduğunu detaylıca inceleyeceğiz. Konuyu sade bir dille, örneklerle açıklayacağız.

console.log ile return Arasındaki Temel Fark

Önce basit bir örnekle başlayalım:

jsx
function carp(a, b) {
  console.log(a * b);
}

Bu fonksiyon iki sayıyı çarpıp sonucu ekrana yazdırır. Örneğin:

jsx
carp(3, 6);  // Konsola 18 yazdırır

Peki biz bu sonucu saklamak istesek?

jsx
let sonuc = carp(3, 6);
console.log(sonuc);  // Ne yazdırır? -> undefined

Burada sonuc değişkenine bir değer gelmez. Çünkü fonksiyon sadece console.log ile ekrana yazı yazdı, ama dışarıya bir değer döndürmedi.

Fonksiyondan Değer Döndürmek: return

Bir fonksiyonun bir işlem yaptıktan sonra sonucunu dış dünyaya vermesini istiyorsak, return kullanmamız gerekir. Yukarıdaki örneği yeniden yazalım:

jsx
function carp(a, b) {
  return a * b;
}

Artık bu fonksiyon, çarpım sonucunu dışarıya verir. Bu sonucu bir değişkene atayabiliriz:

jsx
let sonuc = carp(3, 6);
console.log(sonuc);  // 18

Bu örnekte artık gerçekten fonksiyondan bir değer aldık. Bu değer sadece konsola yazdırılabilir değil, başka işlemlerde de kullanılabilir.

return Kullanılınca Fonksiyon Durur

return sadece bir değeri döndürmekle kalmaz, aynı zamanda fonksiyonun çalışmasını o anda durdurur. Yani return satırından sonra gelen hiçbir satır çalışmaz.

Örneğin:

jsx
function yazVeDon() {
  return "Bitti";
  console.log("Bu satır asla çalışmaz");
}

Burada "Bu satır asla çalışmaz" ifadesi gerçekten de çalışmaz. Çünkü return ile fonksiyonun işi bitirilmiş olur.

Şartlı Durumlarda return Kullanımı

Fonksiyonların içinde bazen farklı durumlara göre farklı çıktılar vermek isteyebiliriz. Örneğin bir fonksiyon hem iki değeri toplayabilir, hem de geçersiz bir değer verildiğinde bir hata mesajı döndürebilir.

jsx
function topla(a, b) {
  if (typeof a !== "number" || typeof b !== "number") {
    return "Geçersiz giriş";
  }

  return a + b;
}

Kullanımı:

jsx
console.log(topla(4, 5));      // 9
console.log(topla("merhaba", 2)); // "Geçersiz giriş"

Burada önemli olan şey şu: Eğer return çalışırsa, o andan itibaren fonksiyonun geri kalanı çalışmaz. Bu yüzden yukarıdaki örnekte return "Geçersiz giriş"; çalışırsa, return a + b; hiç çalışmaz.

return Sadece Tek Bir Değer Döndürür

Bir fonksiyonda aynı anda sadece bir değer döndürülebilir. Bu değer ister sayı olsun, ister metin, isterse bir dizi veya nesne.

Yanlış bir kullanım:

jsx
function bilgileriVer() {
  return "Ahmet", "Mehmet";  // Sadece "Mehmet" döner
}

Bu örnekte sadece sonuncu değer döner. İlk yazılan "Ahmet" göz ardı edilir. Doğru kullanım ise bu değerleri bir dizi ya da bir nesne içinde döndürmektir:

jsx
function bilgileriVer() {
  return ["Ahmet", "Mehmet"];
}

Ya da:

jsx
function bilgileriVer() {
  return { ad: "Ahmet", soyad: "Mehmet" };
}

Bu şekilde hem birden fazla bilgiyi dışarıya veririz, hem de sadece bir tane değer döndürmüş oluruz (ama bu değer çok veri içerebilir).

Dönen Değeri Başka İşlemlerde Kullanmak

return sayesinde bir fonksiyonun sonucunu başka fonksiyonlarda ya da işlemlerde kullanabiliriz.

Örneğin:

Ya da daha kısa şekilde:

jsx
function ikiKat(x) {
  return x * 2;
}

let sonuc = ikiKat(5);       // 10
let yeniSonuc = ikiKat(sonuc);  // 20
console.log(yeniSonuc);
jsx
let toplam = ikiKat(ikiKat(3)); // 3 → 6 → 12
console.log(toplam); // 12

Fonksiyonun döndürdüğü değeri başka fonksiyona girdi olarak da verebiliriz.

return ile Built-in Fonksiyonlar Arasındaki Benzerlik

Aslında JavaScript’te sıkça kullandığımız birçok yerleşik (built-in) fonksiyon da return kullanır. Örneğin:

jsx
let metin = "Merhaba";
let yeniMetin = metin.toUpperCase();
console.log(yeniMetin); // "MERHABA"

Burada toUpperCase() fonksiyonu yeni bir metin döndürür. Eğer bu fonksiyon sadece console.log yapsaydı, yeniMetin değişkenine bir şey gelmezdi.

Aynı durum Math.random() gibi fonksiyonlar için de geçerlidir:

jsx
let rastgele = Math.random();  // 0 ile 1 arasında rastgele bir sayı
console.log(rastgele);

Bu tür fonksiyonlar da aslında return kullanarak değer döndürür.

Sonuç: return Olmadan Değer Üretilemez

Bir fonksiyondan gerçekten geri dönüş almak istiyorsak, sadece bir şeyleri ekrana yazdırmak değil de, o değeri başka bir yerde kullanmak istiyorsak, mutlaka return kullanmalıyız.

Bu yazıda öğrendiklerimizi özetleyelim:

  • return, bir fonksiyonun sonucunu dış dünyaya verir.
  • console.log sadece ekrana yazar, bir değer döndürmez.
  • return çalıştığı anda fonksiyon durur, sonrasındaki kod çalışmaz.
  • Bir fonksiyondan sadece tek bir değer döndürülebilir (ama bu değer çok veri içerebilir).
  • return ile dönen değer başka fonksiyonlara veya işlemlere aktarılabilir.

İşte bu yüzden return, JavaScript fonksiyonlarında en temel ve en önemli kavramlardan biridir. Kodun tekrar kullanılabilirliğini artırır, işlemlerin sonucunu kontrol etmeyi sağlar ve yazdığımız fonksiyonları daha güçlü hale getirir.

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