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