- Konu sahibi
- #1
JavaScript return nedir?
JavaScript'te
return, bir fonksiyonun çalışmasını sonlandırıp çağrıldığı yere bir değer gönderen komuttur. Fonksiyonun ürettiği sonucu dışarıda kullanmak istiyorsanız return kullanırsınız. Normal akışta return’den sonraki satırlar atlanır; ancak varsa finally bloğu değer dışarı dönmeden önce çalışır.Temel kullanım
Aşağıdaki fonksiyon iki sayıyı toplar ve sonucu çağıran koda geri verir:
Kod:
function topla(a, b) {
return a + b;
}
const sonuc = topla(3, 4);
console.log(sonuc);
Beklenen çıktı:
Kod:
7
Burada
topla(3, 4) ifadesi 7 değerine dönüşür. Bu nedenle sonuç bir değişkene atanabilir, başka bir fonksiyona gönderilebilir veya koşul içinde kullanılabilir.return çalışınca ne olur?
return iki işi aynı anda yapar: Fonksiyonu bitirir ve belirtilen değeri geri verir.
Kod:
function kullaniciMesaji(oturumAcik) {
if (oturumAcik) {
return "Hoş geldiniz";
}
return "Lütfen giriş yapın";
}
console.log(kullaniciMesaji(true));
console.log(kullaniciMesaji(false));
Çıktı sırasıyla
Hoş geldiniz ve Lütfen giriş yapın olur. İlk return çalıştığında fonksiyon hemen bittiği için alttaki ikinci return yalnızca koşulun yanlış olduğu durumda değerlendirilir.return ile console.log arasındaki fark
console.log() değeri geliştirici konsoluna yazdırır; return ise değeri fonksiyonun çağrıldığı yere taşır. Yazdırılan bir değeri başka hesaplamada doğrudan kullanamazsınız.| Kod | Görevi | Sonraki kullanım |
|---|---|---|
return deger | Fonksiyondan değer döndürür | Değişkene atanabilir veya işlenebilir |
console.log(deger) | Değeri konsola yazar | Tek başına fonksiyon sonucu oluşturmaz |
Örneğin
return kullanmayan bir fonksiyonu değişkende saklarsanız sıradan fonksiyon çağrısının sonucu undefined olur:
Kod:
function yazdir() {
console.log("Merhaba");
}
const sonuc = yazdir();
console.log(sonuc);
Konsolda önce
Merhaba, ardından undefined görülür. Fonksiyon ekrana yazı yazmıştır ancak çağıran koda bir değer döndürmemiştir.Uygulanabilir kullanım adımları
Bir fonksiyondan sonuç almak için şu sırayı izleyin:
- Fonksiyonun hangi girdileri alacağını parametre olarak tanımlayın.
- Sonucu hesaplayan ifadeyi fonksiyon gövdesinde oluşturun.
- Çağıran kodun kullanacağı noktada
returnile bu sonucu döndürün. - Fonksiyonu çağırıp sonucu bir değişkene atayın veya doğrudan kullanın.
- Beklenmeyen
undefinedgörürseniz her koşul yolundareturnolup olmadığını kontrol edin.
Örneğin:
Kod:
function indirimliFiyat(fiyat, indirim) {
if (!Number.isFinite(fiyat) || !Number.isFinite(indirim) ||
fiyat < 0 || indirim < 0 || indirim > 100) {
return null;
}
return fiyat - (fiyat * indirim / 100);
}
const sonuc = indirimliFiyat(200, 10);
console.log(sonuc);
Beklenen çıktı
180 olur. Geçersiz bir değer verilirse fonksiyon null döndürür; çağıran kod bunu kontrol ederek işlemi durdurabilir veya kullanıcıya hata mesajı gösterebilir. Gerçek uygulamalarda hata durumunu null, özel bir nesne veya fırlatılmış hata ile temsil edip etmemeye proje sözleşmesine göre karar verin; bu değerleri birbirine karıştırmayın.finally ve async fonksiyonları ayırın
Bir try bloğunda return çalışsa bile ilgili finally önce yürütülür; temizlik kodu burada çalışabilir. Finally içine başka bir return yazmak önceki sonucu değiştirebilir, bu nedenle temizliği dönüş değerinden ayrı tutun. Yukarıdaki örnekler sıradan fonksiyonlardır. Async fonksiyon, return edilen değeri çözümleyen bir Promise döndürür; çağıran kod sonucu await veya Promise zinciriyle alır.
Sık yapılan hatalar
- return ile değer yazdırmayı karıştırmak: Konsolda görünmesi, değerin fonksiyondan döndüğü anlamına gelmez.
- return sonrasına çalışan kod beklemek:
returnsonrasındaki aynı blokta bulunan satırlar yürütülmez. - Her koşulda sonuç döndürmemek: Bazı durumlarda
returnçalışmazsa sonuçundefinedolabilir. - Satır sonuna yanlışlıkla geçmek:
returnile değeri ayrı satırlara bölmek otomatik noktalı virgül ekleme nedeniyle beklenmeyen sonuç doğurabilir. Değerireturnile aynı satırda yazın. - Fonksiyon dışında kullanmak:
returnyalnızca bir fonksiyonun gövdesinde kullanılabilir; tarayıcıda normal betik veya modülün en üst seviyesinde yazılması sözdizimi hatasına yol açar.
Sık sorulan sorular
Arrow function içinde return nasıl kullanılır?
Tek ifadeli arrow function'larda süslü parantez kullanılmazsa ifade örtük olarak döndürülür:
const kare = sayi => sayi * sayi;. Süslü parantez eklerseniz açıkça return yazmanız gerekir: const kare = sayi => { return sayi * sayi; };.return boş bırakılırsa ne döner?
return; fonksiyonu hemen sonlandırır ve undefined döndürür. Hiç return çalışmaması da çoğu durumda aynı sonucu üretir; ancak fonksiyonun hangi koşulda bittiğini anlamak için açık yazım daha okunaklı olabilir.