Sobes.tech
Junior

JavaScript'te null ve undefined arasındaki farkları daha detaylı anlatabilir misin?

sobes.tech yapay zeka

AI'dan gelen yanıt

  • undefined:

    • Tanımlanmamış, ancak bildirilmiş değişkenlere atanır.
    • Fonksiyon parametreleri için varsayılan değerdir, argümanlar geçirilmediğinde kullanılır.
    • Var olmayan bir nesne özelliğine veya dizi öğesine erişilmeye çalışıldığında elde edilir.
    • Veri tipi — undefined.
  • null:

    • Açıkça bir değişkene atanan, "değer yok" anlamına gelen özel bir değerdir.
    • Bilinçli olarak herhangi bir nesne veya ilkel değerin yokluğunu temsil eder.
    • Veri tipi — object (bu, JavaScript'te tarihsel bir hatadır, ama böyle).

Tablodaki temel farklar:

Özellik undefined null
Köken Dolaylı (varsayılan) Açık (geliştirici tarafından atanır)
Amaç Bildirilmiş, ancak değeri atanmış değil Bilinçli olarak değerin yokluğu
Veri tipi (typeof) undefined object
Mantıksal bağlam false false
Eşitlik (==) null == undefined (true) null == undefined (true)
Katı eşitlik (===) null === undefined (false) null === undefined (false)

Örnek:

let a; // Bildirildi, ama başlatılmadı -> undefined
console.log(a); // undefined

const obj = {};
console.log(obj.prop); // Olmayan özelliğe erişim -> undefined

function greet(name) {
  console.log(name);
}
greet(); // name parametresi verilmedi -> undefined

let b = null; // Açıkça null atanmış
console.log(b); // null

let c = {};
c.data = null; // data özelliğine null atanmış
console.log(c.data); // null

console.log(typeof a); // undefined
console.log(typeof b); // object
console.log(null == undefined); // true
console.log(null === undefined); // false