null ve undefined
Boolean değerleri öğrendiniz — net evet veya hayır. Program bazen «burada değer yok» demelidir. JavaScript’te iki yaygın boşluk vardır: undefined ve null. Benzer görünürler ama hikâyeleri farklıdır. Burada ayırıyoruz; sonraki dönüşümler ve kontroller net kalsın.
null ile undefined arasındaki fark nedir?
undefined genellikle «henüz buraya bir şey konmadı» demektir — let ile bildirilmiş ama atanmamış değişken veya eksik parça. null «kasıtlı boş» demektir: siz (veya bir API) yeri temizlemek için null koyarsınız. typeof ile bakın: typeof undefined → "undefined", ama typeof null eski tuhaflık "object" verir. Karşılaştırmada === tercih edin. İkisi de falsy’dir; boolean (true / false) değildir.
Boş değer araç seti
📊 Başlangıç için null ve undefined
| Fikir | Örnek | Sonuç / not |
|---|---|---|
| Eksik / atanmamış | let x; sonra x |
undefined |
| Kasıtlı boş | let box = null |
boşluğu siz seçtiniz |
typeof eksik |
typeof undefined |
"undefined" |
typeof boş |
typeof null |
"object" (tuhaflık — yine de boş) |
| Sıkı karşılaştırma | box === null |
box null tutuyorsa true |
| Gevşek karşılaştırma | null == undefined |
== ile true — netlik için === tercih edin |
undefined — henüz atanmadı
let ile bir ad bildirin ve atama yapmayın. Değer undefined’dır. Hem değeri hem typeof’u loglayın; "undefined" etiketi yerleşsin.
let nickname;
console.log(nickname);
console.log(typeof nickname);
null — kasıtlı boş
Açıkça «değer yok» demek istediğinizde null koyun. Atamayı unutmaktan farklıdır.
let selected = null;
console.log(selected);
console.log(typeof selected);
typeof yan yana
İki sonucu birlikte görün. Unutmayın: typeof null’ün "object" yazması tuhaflıktır — henüz tam nesne dersi değil.
console.log(typeof undefined);
console.log(typeof null);
let a;
let b = null;
console.log(typeof a);
console.log(typeof b);
null ve undefined için === tercih edin
=== hem değeri hem türü sorar. «Tam olarak null» veya «tam olarak undefined» demek istediğinizde kullanın. == ile null ve undefined eşleşebilir — öğrenirken yanıltır.
let user = null;
let title;
console.log(user === null);
console.log(title === undefined);
console.log(user === undefined);
Gevşek == ikisini karıştırabilir
== ile null ve undefined eşleşir. Bir kez loglayın — gerçek kontrolleri ===’te tutun.
console.log(null == undefined);
console.log(null === undefined);
İlk satır true’dur çünkü == gevşektir. İkinci false’tur. Gerçek kontrolleri === ile yazın; niyetiniz açık kalsın.
İki boşluğu sayfada gösterin
undefined tarzı bir ad ve bir null tutun; textContent ile kısa etiketler yazın.
<!DOCTYPE html>
<html>
<head>
<title>null and undefined — labels</title>
</head>
<body>
<p id="out">…</p>
<script>
let title;
let avatar = null;
document.getElementById("out").textContent =
"title=" + title + " | avatar=" + avatar;
</script>
</body>
</html>
Paragraf iki boşluğu tek satırda gösterir. Yalnızca avatar’ı kısa bir dizeye çevirin, yenileyin; sağ yarının değiştiğini, title’ın undefined kaldığını doğrulayın.
Kendiniz deneyin
let city;bildirin — atama yapmadancityvetypeof cityloglayın.let bag = null;koyun — değer vetypeof bagloglayın ("object"tuhaflığını bekleyin).typeof undefinedvetypeof null’ü yan yana loglayın.===ile karşılaştırın:nulltutan değişkeninullveundefinedile kontrol edin.- Bir kez
null == undefinedloglayın; gerçek kontrolleri===ile yazın. - HTML demoda
avatar’ı"pic.png"yapın, yenileyin, yeni satırı okuyun.
Sık hatalar
nullileundefined’ı her zaman aynı saymak — anlam farklıdır (kasıtlı vs atanmamış)typeof null→"object"deyince paniklemek — tuhaflık;nullyine kasıtlı boştur- Aralarında
==’ye güvenip gevşek eşleşmeyi görmemek - İkisini de boolean sanmak — boş değerlerdir; boolean yalnız
true/false - Boş dize
""ilenull’ü karıştırmak —""hâlâ dizidir
Özet
undefined: eksik / henüz atanmamış;typeof→"undefined"null: sizin koyduğunuz kasıtlı boş;typeof→"object"(tuhaflık)- Net kontroller için
===tercih edin; ikisi de falsy ama boolean değil - Boş dize
""metindir —nullveyaundefinedile aynı değildir - Sonraki: tür dönüşümü — bir türdeki değeri bilerek başka türe çevirmek
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 Talimatlar
- Her soruyu dikkatle okuyun
- Her soru için en iyi cevabı seçin
- Quiz'i istediğiniz kadar tekrar alabilirsiniz
- İlerlemeniz üstte gösterilecek