JavaScript Fonksiyon Tanımlama

Genellikle bir fonksiyon bir kodun yinelemeli olarak kullanılacağı durumda tanımlanır. Diğer programlama dillerinde de kullanılan fonksiyonlar “altprogram” olarak da ifade edilmektedir. Fonksiyon isim ve gövde olarak iki parçadan oluşur. isim kısmından fonksiyona parametre geçişi sağlanabilir. Gövde üzerinde de çalıştırılacak olan kodlar yürütülmektedir. Bir fonksiyona parametre geçişi olabildiği gibi fonksiyon isimleri üzerinden değer dönüşü de yapılabilmektedir. Fonksiyon iki parçadan oluştuğunu yazmıştım. Fonksiyon gövdesi yürütülecek komutları barındırır.

Fonksiyon ismi ile de fonksiyonu terkar tekrar kullanbiliriz. Fonksiyonu çağırmak (çalıştırmak) için bilmemiz gerekenler, fonksiyon adı ve fonksiyonunun aldığı parametrelerdir.

Tanım: Gelelim javascript ile fonksiyon nasıl tanımlandığına;

JavaScript dilinde her fonksiyon bir nesnedir. Varsayılan değer dışında bir fonksiyondan bir değer döndürmek için return ifadesi kullanılmak zorundadır. return değeri olmayan bir fonksiyon varsayılan değeri döndürmektedir. Kurucu metod ile oluşturulan nesneler dışındaki tüm fonksiyonlardaki varsayılan değerler undefined türüdür. Yazım Kuralı: function isim([parametre[, parametre[, ... parametre]]]) { ifadeler } Yukarıdaki tanımlama en doğru tanımlama kuralı olmasına rağmen, fonksiyon kavramına yeni olanlar için fonksiyonları 4 ana gruba ayırabiliriz.

1. Parametresi ve geriye dönüş değeri olmayan fonksiyonlar

Örnek:


//fonsiyonun tanımlanması
function selamla(){
alert("merhaba dünya");
}
//fonksiyonunun kullanımı selamla(); 
2. Parametreli ve geriye dönüş değeri olmayan fonksiyonlar Bir fonksiyonun parametre alması demek fonksiyonun adından sonraki parantez içine virgüller ile fonksiyonun dışarıdan alacağı parametreler belirtilir. Aşağıdaki selamla fonksiyonu dışarıdan ad gelen değerleri ad değişkeni ile almaktadır. Kendi içinde ad değişkeni ile kullanıp ekrana yazdırmaktadır. Ana programda ise tanımlanan fonksiyon iki sefer farklı parametreler ile çağrılmaktadır.

//fonsiyonun tanımlanması

function selamla(ad){
alert("merhaba "+ad);
}

//fonksiyonunun kullanımı

//fonsiyonları istediğimiz kadar çağırabiliriz.

selamla("hayri");
selamla("ahmet");
3. Parametresiz ve geriye dönüş değeri olan fonksiyonlar Geriye dönüş değeri olan fonksiyonlarda return ifadesi kullanılması zorunludur. Fonksiyonda üretilen değer return ifadesi üzerinden fonksiyon adı ile ana programa geçirilir. Aşağıdaki örnekte alınan yıl değeri yilGetir() fonksiyonu ile yil değişkenine aktarılır. yil değişkeni de alert ile ekrana yazdırılmaktadır.

//fonsiyonun tanımlanması

function yilGetir(){
return (new Date()).getFullYear();
}

//fonksiyonunun kullanımı

var yil=yilGetir();
alert(yil);
4. Parametresi ve geriye dönüş değeri olan fonksiyonlar

//fonsiyonun tanımlanması

function sayiTopla(s1,s2){
var toplam=s1+s2;
return return toplam;
}

var sayi1=120;
var sayi2=250;

//fonksiyonun kullanımı

var sonuc= sayiTopla(sayi1,sayi2);
alert(sonuc);
JavaScript Anonim Fonksiyon Tanımlama Bir fonksiyonu isim ile tanımlayabileceğimiz gibi isimsiz (ananonim) olarak da tanımlamak mümkündür.

Örnek: İsim ile Çarpım  Fonksiyonu tanımlama

function carpim(x, y) {
return x * y;
}

Örnek: Çarpım fonsiyonunu anonim olarak tanımlama

var carpim =function (x, y) {
return x * y;
}

Not 1:Anonim fonksiyonlar fonksiyon alan bir çok javascript metodu ve özelliği için kullanılabilecek ideal tanımlama yöntemleridir.

Not 2:Anonim fonksiyon tanımlama jquery kavramını öğrenecekler için önemli bir adımdır. Jquery kütüphanesinde bir çok işlem anonim tanımlamalar şeklinde yürütülmektedir.

Örnek: Dizideki değerleri okuma örneği. Anonim fonksiyon ile

var dizi=[12,25,85,45,74];
/*forEach metodu dizideki her değer için okuma yapar*/
/*array.forEach(fonksiyon)*/
dizi.forEach(function(gelen){
alert(gelen);
});
JavaScript Arrow Fonksiyon /JavaScript Lambda Fonksiyon C# programlama dili ile ilgilendiyseniz Lambda fonksiyon tanımlama kavramını az çok biliyorsunuz demektir. EcmaScript 6 ile javasSript diline dahil olan Arrow Fonksiyonlar ile isimsiz bir fonksiyon tanımlayıp değer döndürme işlemini yapabilirsiniz. Yazım Kuralı: En kapsamlı şu şekilde yazabilirsiniz. (param1, param2, …, paramN) => { ifadeler }

Örnek 1: Basit bir kare alma fonksiyonunu  arrow fonksiyon ile  tanımlama

//tanımlama kısmı

var kareAl = x => x * x;

//tanımlanan fonksiyonun kullanımı

window.alert(kareAl(10));

Örnek 1: Klasik yöntemle tanımlama

//fonksiyonun tanımlanması

function kareAl(x)

{

return x*x;

}

//fonksiyonun kullanımı

window.alert(kareAl(10));

Örnek 2: Yukarıdaki anonim örneğini arrow fonksiyon ile şu şekilde tanımlayabiliriz.

var dizi=[12,25,85,45,74];
/*forEach metodu dizideki her değer için okuma yapar*/
/*array.forEach(fonksiyon)*/
dizi.forEach((eleman)=>alert(eleman));

Örnek 3: dizi içindeki 1,2,3 sayılarının karesini alma

var dizi = [1, 2, 3];
var kareal1 = dizi.map(x => x * x);
alert(kareal1);

// Klasik yöntemle

var kareal2 = dizi.map(function (x) { return x * x });
alert(kareal2);