CodeBlanks Logo Icon CodeBlanks

null ve undefined farkı

null ile undefined arasındaki farkı öğrenirsin.

null ve undefined farkı

JavaScript ve TypeScript'te iki ayrı "değer yok" durumu vardır. undefined, bir değişkenin tanımlanmış ama değeri henüz atanmamış olduğunu söyler. null ise programcının bilinçle yerleştirdiği boş değerdir.

let a: string | null = null;
let b: string | undefined = undefined;
let c: string | undefined;
console.log(c);  // undefined

Yani undefined "henüz yok", null "bilerek boş" anlamına gelir.

strictNullChecks

TypeScript varsayılan olarak null ve undefined'i diğer türlere atanabilir kabul eder. strictNullChecks seçeneği açıkken bunlar ayrı türler olur; string bir değişkene null atayamazsın, ama açıkça string | null yazarsan geçerlidir.

let s: string = "hi";
let maybe: string | null = null;

Bu seçenek, çalışma anı hatalarını derleme anında yakalamanı sağlar.

Uygulama null kontrolü ile greet yaz

greet(name: string | null): string fonksiyonunu yaz. Eğer name null ise "yok" döndür; değilse name.toUpperCase() döndür. İki çağrının sonucunu da yazdır.

Başlangıç kodu

index.ts
// greet fonksiyonunu yaz
// parametre name: string veya null
// name null ise "yok" döndür
// değilse name'i büyük harfe çevir

Örnek çözüm

index.ts
function greet(name: string | null): string {
  if (name === null) {
    return "yok";
  }
  return name.toUpperCase();
}

console.log(greet("ada"));
console.log(greet(null));

Beklenen çıktı

ADA
yok

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Bir değişken tanımlanmış ama değeri atanmamışsa değeri ne olur?

  • boş string
  • undefined Doğru cevap
  • null
  • 0

Açıklama: TypeScript'te tanımlanıp değeri atanmayan değişken otomatik olarak undefined olur. null ise programcının bilinçle atadığı bir değerdir.

2 Union'a null ekle

Soru
let userName: string ____ = null;
Cevap
let userName: string | null = null;

Açıklama: Union türleri | işleci ile birleştirir. string | null, değerin string ya da null olabileceğini söyler ve strictNullChecks altında null atamasına izin verir.

3 null ve undefined parçaları

Kavram Anlamı
null Bilinçli boş değer
undefined Atanmamış değişken
string | null String ya da null olabilir
strictNullChecks null ve undefined'i ayrı tür yapar

Başlangıç bölümündeki tüm dersler