Tüm blog yazıları

Fonksiyonlara Birden Fazla Bilgi (Argüman) Göndermek

Programlamada bir işlemi birden fazla kez yapmak ya da farklı verilerle tekrar etmek istediğimizde fonksiyonlar bize büyük kolaylık sağlar. Fonksiyonları, belirli görevleri yerine getiren küçük makineler gibi düşünebiliriz. Bu makinelere bazen bir bilgi verme

eminbasbayan4 dk okuma
Fonksiyonlara Birden Fazla Bilgi (Argüman) Göndermek

Programlamada bir işlemi birden fazla kez yapmak ya da farklı verilerle tekrar etmek istediğimizde fonksiyonlar bize büyük kolaylık sağlar. Fonksiyonları, belirli görevleri yerine getiren küçük makineler gibi düşünebiliriz. Bu makinelere bazen bir bilgi vermemiz gerekir. İşte bu verilen bilgiler, fonksiyonun argümanlarıdır.

Şimdi bu yazıda, bir fonksiyona birden fazla bilgi (argüman) nasıl gönderilir, bu bilgilerin sırası neden önemlidir ve yanlış kullanımda neler olur, bunu detaylıca anlatacağız.

Fonksiyonlar Birden Fazla Bilgi Alabilir

Önce basit bir örnekle başlayalım:

jsx
function introduce(name, age) {
  console.log("Benim adım " + name + " ve yaşım " + age);
}

Bu fonksiyon iki bilgi bekliyor:

  • Birincisi kişinin ismi (name)
  • İkincisi kişinin yaşı (age)

Fonksiyonu şöyle çağırabiliriz:

jsx
introduce("Ali", 16);

Ekrana şunlar yazılır:

metin
Benim adım Ali ve yaşım 16

Burada önemli olan şey, bilgilerin sırasıdır. İlk yazılan bilgi ("Ali") name değişkenine, ikinci bilgi (16) ise age değişkenine atanır.

Eğer sırayı karıştırırsak:

jsx
introduce(16, "Ali");

Ekrana bu yazılır:

metin
Benim adım 16 ve yaşım Ali

Gördüğün gibi anlam tamamen bozuldu. JavaScript, bilgilerin anlamına bakmaz; sadece sıraya bakar. Bu nedenle fonksiyon çağırırken hangi bilgi hangi sırada verilecek, bunu dikkatli planlamak gerekir.

Argümanlarla Küçük Bir Uygulama

Bu sefer farklı bir örnek yapalım. Elimizde bir fonksiyon olsun, bu fonksiyon bir öğrencinin adını ve aldığı notu alsın. Notu 50’nin üzerindeyse “Geçti”, değilse “Kaldı” yazdırsın.

jsx
function checkResult(studentName, score) {
  if (score >= 50) {
    console.log(studentName + " dersi geçti.");
  } else {
    console.log(studentName + " dersten kaldı.");
  }
}

Kullanımı şöyle olabilir:

jsx
checkResult("Merve", 72);
// Merve dersi geçti.

checkResult("Kerem", 45);
// Kerem dersten kaldı.

Bu örnekte hem string (yazı) türünde (studentName), hem de number (sayı) türünde (score) veri kullandık. JavaScript bu türleri ayırt edebilir, ama sıralarını değiştirmemek gerekir.

Bir Metni Belirli Sayıda Tekrarlamak

Bazı durumlarda, aynı metni birden fazla kez yazdırmak isteyebiliriz. Örneğin, bir uyarı mesajını ekranda beş kez göstermek gibi.

Aşağıdaki fonksiyon tam da bunu yapar:

jsx
function repeatText(text, count) {
  let output = "";
  for (let i = 0; i < count; i++) {
    output += text;
  }
  console.log(output);
}

Kullanımı:

jsx
repeatText("Uyarı! ", 3);
// Uyarı! Uyarı! Uyarı!

Burada dikkat edilmesi gereken şey, ikinci bilgiyi sayı olarak vermemizdir. Eğer sıralamayı karıştırırsak:

jsx
repeatText(3, "Uyarı!"); // yanlış kullanım

Bu durumda JavaScript döngüyü anlamaz çünkü count olarak bir metin gelir. JavaScript “3 < 'Uyarı!'” gibi mantıksız bir kıyaslama yapmaya çalışır ve sonuçta döngü hiç çalışmaz.

Sonuç:

metin
(empty line - yani hiçbir şey yazmaz)

Eksik Argüman Verilirse Ne Olur?

JavaScript’te fonksiyonu çağırırken bir argümanı atlamışsak, bu durum hemen hata vermez. Ama atlanan bilgi, kod içinde kullanıldığında sorun çıkarabilir.

Örneğin:

jsx
function sayHi(name, city) {
  console.log("Merhaba " + name + ", " + city + " şehrine hoş geldin!");
}

Bu fonksiyonu şöyle kullanırsak:

jsx
sayHi("Zeynep", "İzmir");

Çıktı:

metin
Merhaba Zeynep, İzmir şehrine hoş geldin!

Ama ikinci bilgiyi vermezsek:

jsx
sayHi("Zeynep");

Çıktı:

metin
Merhaba Zeynep, undefined şehrine hoş geldin!

Çünkü city değişkeni tanımsız olur (undefined). JavaScript bu durumu hata olarak görmez, ama ekrana mantıksız bir şey yazar. Bu nedenle eksik argüman verildiğinde, kodun bu durumu nasıl yöneteceğini düşünmek gerekir.

Sonuç

JavaScript’te fonksiyonlara birden fazla bilgi gönderebiliriz. Bu bilgiler:

  • Sıralı şekilde tanımlanır,
  • Virgülle ayrılır,
  • Ve sıraları çağrılırken de korunmalıdır.

Farklı türde bilgiler (örneğin bir yazı ve bir sayı) aynı fonksiyonda kullanılabilir. Ancak sıraları karışırsa fonksiyon yanlış sonuç verir ya da hiç çalışmaz.

Ayrıca bir argüman eksik verildiğinde JavaScript buna ses çıkarmaz, ama o eksik bilgi kullanılırsa hata alırız veya mantıksız sonuçlar görürüz.

Bu konular, fonksiyonları daha güçlü ve esnek hale getirmenin temelini oluşturur. İleride daha karmaşık projelerde bu yapıları çokça kullanacağız. Bu yüzden bu temel bilgileri çok iyi anlamak önemlidir.

JavaScript Classes ile pratik uygulamalar, metotlar arası iletişim ve gerçek dünya kod örnekleri
JavaScript Dersleri9 dk okuma

JavaScript Classes - Pratik Uygulamalar

JavaScript class'ları ile pratik uygulamalara geçin! Metotlar arası iletişimden constructor'da metot çağırmaya, kod tekrarını azaltmaktan gerçek dünya senaryolarına kadar class kullanımının inceliklerini keşfedin. Kendi alışveriş sepeti örneğinizle bilginizi pekiştirin.

Yazıyı oku
JavaScript class yapısını gösteren bir kod örneği, ES6 ile modern nesne oluşturma
JavaScript Dersleri9 dk okuma

JavaScript Classes

ES6 ile JavaScript'e gelen class yapısı sayesinde nesne oluşturmak artık çok daha kolay ve düzenli! Constructor function karmaşasından kurtulup, okunabilir ve yönetilebilir kodlar yazmak isteyenler için modern JavaScript'in temel taşı olan class'ları tüm detaylarıyla keşfedin. Bu rehberle nesne şabl

Yazıyı oku
JavaScript kodunda Constructor Function ve new keyword'ü ile nesne oluşturma örnekleri
JavaScript Dersleri8 dk okuma

Constructor Functions ve new Keyword

Factory Function'ların hafıza israfı sorununa Constructor Function'lar ve new keyword'ü ile son verin! Metotları paylaştırarak JavaScript objelerini daha verimli nasıl oluşturacağınızı, new'in perde arkasında neler yaptığını ve prototype sisteminin gücünü bu rehberde keşfedin.

Yazıyı oku

Çerez tercihlerin

Platformun çalışması için zorunlu çerezler kullanıyoruz. İzin verirsen anonim kullanım verilerini ölçüyoruz. Ayrıntıları incele