17 Nisan 2022

Fonksiyonlar

Çoğu zaman kod yazarken belirli bölümleri tekrarlama ihtiyacı duyulur.

Örneğin kullanıcı hesabına giriş yaptığında veya çıktığında güzel görünümlü bir mesaj göstermek istenebilir.

Fonksiyonlar programın “yapı taşıdır”. Birçok defa bu fonksiyonlar çağırılarak tekrardan bu kodları yazmaktan kurtulunur.

Aslında var olan alert(mesaj), prompt(mesaj,varsayilan) ve confirm(soru) gibi fonksiyonları gördük. Fakat artık bunları yazmanın zamanı geldi.

Fonksiyon Tanımlama

Fonksiyon tanımlamak için function tanım kullanılır.

Aşağıdaki gibi görünür:

function mesajGoster() {
  alert( 'Merhaba millet!' );
}

function kelimesi önce yazılır, ardından fonksiyonun adı ve sonra parametrelerin yazılacağı parantez açılır ve ihtiyaç duyulan parametreler yazılır, sonrasında ise kapatılıp süslü parantez ile fonksiyon gövdesine başlanır.

Yeni fonksyion ismiyle şu şekilde çağırılır: mesajGoster().

Örneğin:

function mesajGoster() {
  alert( 'Merhaba millet' );
}

mesajGoster();
mesajGoster();

mesajGoster() fonksiyonu kodu çalıştırır. Bu kod sonrasında Merhaba millet uyarısını iki defa göreceksiniz.

Bu örnek açıkça fonksiyonların ana amacını gösteriyor: Kod tekrarından kaçınma.

Eğer mesajı değiştirmek istersek bir yerde değiştirdiğimizde bu fonksiyonu kullanan her yerde değişiklik olacaktır.

Yerel değişkenler

Fonksiyon içinde tanımlanan değişkene sadece o fonksiyon içerisinde erişilebilir.

Örneğin:

function mesajGoster() {
  let mesaj = "Merhaba! Ben Javascript"; // Yerel Değişken

  alert( mesaj );
}

mesajGoster(); // Merhaba! Ben Javascript

alert( mesaj ); // <-- Hata! Bu değişken `mesajGoster` fonksiyonuna aittir.

Dış Değişkenler

Fonksiyon, kendi dışında oluşturulmuş değişkenlere erişebilir. Örneğin:

let kullaniciAdi = 'Adem';

function mesajGoster() {
  let mesaj = 'Hello, ' + kullaniciAdi;
  alert(mesaj);
}

mesajGoster(); // Merhaba, Adem

Fonksiyon dışarıda bulunan değişkenlere tam kontrol sağlar. Hatta modifiye edebilir.

Örneğin:

let kullaniciAdi = 'Adem';

function mesajGoster() {
  kullaniciAdi = "Yusuf"; // (1) dışarıda bulunan değişkenin değeri değişti.

  let mesaj = 'Merhaba, ' + kullaniciAdi;
  alert(mesaj);
}

alert( kullaniciAdi ); // Fonksiyon çağırılmadan  Adem

mesajGoster();

alert( kullaniciAdi ); // fonksiyon çağırıldıktan sonra Yusuf,

Dışarıda bulunan değişkenler eğer yerel değişken yoksa kullanılırlar. Bazen eğer let ile değişken oluşturulmazsa karışıklık olabilir.

Eğer aynı isim ile fonksiyon içerisinde bir değişken oluşturulmuş ise, fonksiyon içerisindeki değişkenin değeri düzenlenebilir. Örneğin aşağıda yerel bir değişken dıştaki değişken ile aynı isimdedir. Dolayısıyla yerel değişken düzenlenecektir. Dıştaki değişken bundan etkilenmeyecektir.

let kullaniciAdi = 'Adem';

function mesajGoster() {
  let kullaniciAdi = "Yusuf"; // yerel değişken tanımla

  let mesaj = 'Merhaba, ' + kullaniciAdi; // Yusuf
  alert(mesaj);
}

// buradaki fonksiyon kendi değişkenini yaratacak ve onu kullanacak.
mesajGoster();

alert( kullaniciAdi ); // Adem, değişmedi!!!, fonksiyon dışarıda bulunan değişkene erişmedi.
Evrensel(Global) Değişkenler

Fonksiyonların dışına yazılan her değişken, yukarıda bulunan kullaniciAdi gibi, evrensel veya global değişken olarak adlandırılırlar.

Global değişkenlere her fonksiyon içerisinden erişilebilir.(Yerel değişkenler tarafından aynı isimle bir değişken tanımlanmamışsa)

Genelde fonksiyonlar yapacakları işe ait tüm değişkenleri tanımlarlar, global değişkenler ise sadece proje seviyesinde bilgi tutarlar, çünkü proje seviyesinde bilgilerin projenin her yerinden erişilebilir olması oldukça önemlidir. Modern kodda az veya hiç global değer olmaz. Çoğu fonksiyona ait değişkenlerdir.

Parametreler

Parametrelere isteğe bağlı olarak veri paslanabilir. Bunlara fonksiyon argümanları da denir.

Aşağıdaki fonksiyon iki tane parametreye sahiptir. gonderen ve metin