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:
function carp(a, b) {
console.log(a * b);
}
Bu fonksiyon iki sayıyı çarpıp sonucu ekrana yazdırır. Örneğin:
carp(3, 6); // Konsola 18 yazdırır
Peki biz bu sonucu saklamak istesek?
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:
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:
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:
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.
function topla(a, b) {
if (typeof a !== "number" || typeof b !== "number") {
return "Geçersiz giriş";
}
return a + b;
}
Kullanımı:
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:
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:
function bilgileriVer() {
return ["Ahmet", "Mehmet"];
}
Ya da:
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:
function ikiKat(x) {
return x * 2;
}
let sonuc = ikiKat(5); // 10
let yeniSonuc = ikiKat(sonuc); // 20
console.log(yeniSonuc);
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:
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:
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.