null ve undefined farkı
- TypeScript kursu
- Başlangıç
- Ders 63/89
- 4 dk
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); // undefinedYani 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
// 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
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
let userName: string ____ = null;
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 |