Tüm blog yazıları

JavaScript’te null ve undefined

JavaScript’te primitive (ilkel) veri türleri, programlamanın temel yapı taşlarıdır. Bu veri türlerinden numbers (sayılar), booleans (mantıksal değerler) ve strings (metinle

eminbasbayan4 dk okuma
JavaScript’te null ve undefined

JavaScript’te primitive (ilkel) veri türleri, programlamanın temel yapı taşlarıdır. Bu veri türlerinden numbers (sayılar), booleans (mantıksal değerler) ve strings (metinler) daha önce ele aldığımız konular arasındaydı. Şimdi ise null ve undefined kavramlarını inceleyeceğiz.

Bu iki kavram, ilk bakışta benzer görünebilir, ancak aralarındaki farkları anlamak oldukça önemlidir. Neyse ki, diğer veri türleri kadar karmaşık değiller.

Undefined Nedir?

JavaScript’te undefined, bir değişkenin tanımlanmış ama değer atanmamış olduğunu gösteren bir değerdir. JavaScript otomatik olarak bir değişkene başlangıçta undefined değeri atar eğer o değişkene bir değer verilmezse.

Undefined Nasıl Oluşur?

  1. Bir değişken oluşturulup ona değer atanmazsa:

    jsx
    let isim;
    console.log(isim); // undefined

    Burada isim değişkeni oluşturuldu, ancak herhangi bir değer atanmadı. Bu nedenle değeri undefined oldu.

  2. Bir fonksiyon değer döndürmezse:

    jsx
    function selamVer() {
        console.log("Merhaba!");
    }
    
    let sonuc = selamVer();
    console.log(sonuc); // undefined

    selamVer() fonksiyonu bir şey döndürmüyor, bu yüzden çağrıldığında geri döndürülen değer undefined olur.

  3. Bir dizide olmayan bir indekse erişmeye çalışırsak:

    jsx
    let meyveler = ["Elma", "Armut", "Çilek"];
    console.log(meyveler[5]); // undefined

    Dizide 5. indeks olmadığı için JavaScript bize undefined döndürür.

Null Nedir?

Null, bilinçli olarak bir değişkene "boş" değer atamak için kullanılan bir değerdir. Bizim tarafımızdan atanır ve bilinçli olarak "bu değişken şu anda bir şey ifade etmiyor" demek için kullanılır.

Null Nasıl Kullanılır?

  1. Bir değişkenin başlangıçta "boş" olduğunu belirtmek için:

    jsx
    let aktifKullanici = null;
    console.log(aktifKullanici); // null

    Burada aktifKullanici değişkenine başlangıçta bilinçli olarak null atanmış. Bu, sistemde şu anda giriş yapmış bir kullanıcı olmadığını açıkça belirtmek için kullanılabilir.

  2. Bir değeri sonradan kaldırmak için:

    jsx
    let siparis = "Kahve";
    console.log(siparis); // "Kahve"
    
    siparis = null; // Artık sipariş yok
    console.log(siparis); // null

    siparis değişkenine başlangıçta "Kahve" atanmıştı, ancak sonra değerini kaldırıp null yaptık. Böylece, artık sipariş olmadığını belirttik.

Undefined ve Null Arasındaki Farklar

ÖzellikUndefinedNull
Kim tarafından atanır?JavaScript tarafından otomatik atanırGeliştirici tarafından atanır
Ne anlama gelir?Değişkenin değeri tanımlanmamışDeğişken bilinçli olarak boş bırakılmış
Matematiksel işlemde değeriNaN (Geçersiz sayı)0 olarak kabul edilir
Türüundefinedobject (JavaScript’in eski bir hatası)

Örnek:

jsx
let x;
console.log(x); // undefined

let y = null;
console.log(y); // null

Burada x değişkeni hiç değer almadığı için undefined, y değişkeni ise bilinçli olarak null olarak atanmıştır.

Matematiksel İşlemlerde Null ve Undefined

Matematiksel işlemlerde null ve undefined farklı davranır:

jsx
console.log(5 + null); // 5 (null, 0 olarak değerlendirilir)
console.log(5 + undefined); // NaN (Not a Number)
  • Null, toplama işleminde 0 gibi davranır.
  • Undefined, matematiksel işlemlerde geçersiz bir değer (NaN) üretir.

Ne Zaman Null, Ne Zaman Undefined Kullanılır?

SenaryoKullanılacak Değer
Bir değişken tanımlandı ama henüz değer almadıysaundefined (JavaScript otomatik olarak atar)
Bir değişkenin içeriğini bilinçli olarak "boş" yapmak istiyorsanıznull
Bir fonksiyon, hiçbir şey döndürmüyorsaundefined
Kullanıcı giriş yaptıysa bir nesne içerecek, giriş yapmadıysa boş olacaksanull

Örnek:

jsx
let girisYapanKullanici = null; // Başlangıçta kimse giriş yapmamış

function kullaniciGirisi(kullaniciAdi) {
    girisYapanKullanici = kullaniciAdi;
}
console.log(girisYapanKullanici); // null (Henüz giriş yapan yok)

kullaniciGirisi("Ali");
console.log(girisYapanKullanici); // "Ali" (Artık giriş yapan bir kullanıcı var)

Sonuç

JavaScript’te null ve undefined kavramları ilk bakışta birbirine benzeyebilir, ancak farklı amaçlara hizmet ederler:

  • Undefined, JavaScript tarafından otomatik olarak atanır ve değişkenin henüz bir değer almadığını gösterir.
  • Null, bir değişkenin bilinçli olarak boş bırakıldığını ifade eder ve geliştirici tarafından atanır.

Bu farkları anlamak, JavaScript’te veri yönetimini doğru yapmak açısından önemlidir. Gelişmiş projelerde özellikle veri tabanı işlemleri, kullanıcı oturum yönetimi ve hata kontrollerinde sıkça karşılaşacağımız bu iki kavramı doğru şekilde kullanmayı öğrenmek, daha temiz ve anlaşılır kod yazmamızı sağlar.

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