Yükleniyor...

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.

varsayılan undefined

javascript
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.

kasıtlı null atayın

javascript
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.

undefined ve null için typeof

javascript
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.

=== ile sıkı kontroller

javascript
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.

null ile undefined arasında gevşek ==

javascript
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.

null ve undefined sayfa etiketleri

html
<!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

  1. let city; bildirin — atama yapmadan city ve typeof city loglayın.
  2. let bag = null; koyun — değer ve typeof bag loglayın ("object" tuhaflığını bekleyin).
  3. typeof undefined ve typeof null’ü yan yana loglayın.
  4. === ile karşılaştırın: null tutan değişkeni null ve undefined ile kontrol edin.
  5. Bir kez null == undefined loglayın; gerçek kontrolleri === ile yazın.
  6. HTML demoda avatar’ı "pic.png" yapın, yenileyin, yeni satırı okuyun.

Sık hatalar

  • null ile undefined’ı her zaman aynı saymak — anlam farklıdır (kasıtlı vs atanmamış)
  • typeof null → "object" deyince paniklemek — tuhaflık; null yine 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 "" ile null’ü 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 — null veya undefined ile aynı değildir
  • Sonraki: tür dönüşümü — bir türdeki değeri bilerek başka türe çevirmek

🧠 Bilginizi Test Edin

Başlamaya Hazır

Bilginizi Test Edin

Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör

❓
8
Sorular
🎯
70%
Geçmek İçin
♾️
∞
Süre
🔄
∞
Deneme

📝 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