Değer Döndüren Fonksiyonlar

Bir fonksiyon sonunda return ifadesi ile o fonksiyondan dışarı gönderilecek değer ifade edilir. Örnek.

function foo () {
    let mesaj = 'Merhaba Fonksiyon';
    return mesaj;
}
alert( foo() ); // 'Merhaba Fonksiyon' çıktısı verir.

return ifadesi sayesinde bir değişkenin değerini fonksiyon ile atayabiliriz. Örnek.

function kareleriTopla (a, b) {
    let sonuc;
    sonuc = a**2 + b**2;
    return sonuc;
}
let islem = kareleriTopla (12, 15); // fonksiyonun return ettiği değer oldu
alert(islem);
// veya daha temiz ifade ile
function kareleriTopla (a, b) {
    return a**2 + b**2;
}
let sonuc = kareleriTopla (12, 15);
alert(sonuc);

return ifadesinin temel işlevi fonksiyon bloktan çıkıştır, bitiştir. return ile değer döndürmek zorunlu değildir. Çıkış olarak da kullanılabilir. Örnekler.

function islemOnay () {
    if ( !confirm('İşleme Devam Edilecek Onaylıyor Musunuz?') ){
        alert('İşlem Sonlandırıldı.');
        return; //değer döndürmeden çıktık.
    }
    alert('İşleme devam ediliyor...');
    return;
}
islemOnay();
function incToCM(uzunluk) {
    return uzunluk /= 0.393;
}
alert( incToCM( prompt('İnç uzunluk değeri giriniz.',0)) );
function aralikToplama(min,max) {
    alert(`${min} sayısından ${max} sayısına kadar olan sayılar toplanacak!`);
    let sonuc = 0;
    for (let i = Number(min); i < Number(max) + 1; i++) {
        sonuc += i;
    }
    return sonuc;
}
alert( aralikToplama( prompt('Başlangıç Sayısı',0), prompt('Bitiş Sayısı',0)) );
function faktoriyel(n) {
    let sonuc = 1;
    for (let i = Number(n); i > 1; i--) {
        sonuc *= i;
    }
    return sonuc;
}
alert( faktoriyel( prompt('Faktöriyeli alınacak sayıyı giriniz.',0)) );

Bir fonksiyon genellikle karmaşık olmayan tek bir görevi yerine getirir. Uzun ve karmaşık görevler için fonksiyonları parçalamanız önerilir.

Bir Fonksiyon = Bir Görev

Fonksiyon isimleri fonksiyonun görevini tanımlayan şekilde seçilmelidir.

function asalKontrol(sayi) {
    for (let i = 2; i < sayi) {
        if (sayi % i === 0) return 'Asal Değil';
    }
    return 'Asal';
}
alert( asalKontrol( prompt('Asallığı test edilecek sayıyı giriniz',0)) );

Fonksiyonu çağırdığımızda yürütülmesini sağlayan kritik sembol () parantezleridir. Peki bir fonksiyon ismini () ile çağırmadan kullanırsak? Deneyelim.

alert(foo);
function foo() {
    //kodlar
    return 'foo fonksiyonu';
}

Fonksiyonu oluşturan ifadeleri string'miş gibi ekrana basar. Yani fonksiyonun ismi bir değişken ismi ve değeri de fonksiyonu oluşturan kodların string ifadesidir. Bu şu anlama gelmektedir:

Fonksiyon tanımlarken kullandığınız ismi let ile değişken olarak deklare edemezsiniz, hata verir. var ile de deklare etmemeye de dikkat ediniz.

Bu uyarıyı test edelim.

alert(foo);
function foo() {
    //kodlar
    return 'foo fonksiyonu';
}
let foo = 'Bir değişken'; //bu satırda hata verir. aşağıdaki uyarı çalışmaz.
alert (foo);
alert(foo);
function foo() {
    //kodlar
    return 'foo fonksiyonu';
}
var foo = 'Artık bir fonksiyon değil';
alert(foo); //fonksiyonun üzerine yazdık.fonksiyon diye birşey kalmadı :)

() olmadan da kullanabilme sayesinde bir fonksiyonu başka bir fonksiyona argüman yaparak geri çağırabilir veya bir değişkene değer olarak atayarak ifade edebiliriz.

Last updated