null ve undefined farkı
Boş değer ile tanımsız değer arasındaki farkı ve kullanım alanlarını öğrenirsin.
undefined nedir?
JavaScript'te bir değişken tanımlayıp değer atamazsan o değişkenin değeri otomatik olarak undefined olur. Bu kelime tanımsız anlamına gelir: değişken var ama içinde bir değer yok.
Örneğin let ad; yazarsan ad değişkeni tanımlanır ama değeri undefined'dır. Sonra console.log(ad); dersen konsolda undefined yazısını görürsün. Değer atamadan okumaya çalıştığında bu durum ortaya çıkar.
null nedir?
null ise bilinçli olarak verilmiş bir boş değerdir. Değişkenin boş kalacağını sen söylemiş olursun; JavaScript bir şeyi unutmamış, sen şimdilik boş demişsindir.
Örneğin bir kullanıcı henüz bir şehir seçmediyse let sehir = null; yazarsın. Sonra console.log(sehir); dersen konsolda null yazar. Yani null bir değerin olduğunu ama o değerin boş olduğunu belirtir.
Hangi durumda null, hangi durumda undefined?
undefined genellikle JavaScript'in kendi ürettiği bir durumdur: sen bir şeyi unutmuşsun, sistem değer yok der. null ise senin bilinçle yazdığın bir değerdir: şimdilik boş, sonra dolduracağım demişsindir.
Özetle: bir değişkene henüz belli değil anlamında boş bir değer vermek istiyorsan null kullan. Bir değişkeni tanımlayıp değer atamayı unuttuysan JavaScript otomatik undefined verir. Pratikte sen undefined'ı elle yazmazsın; null'ı yazar, boş kastettim demiş olursun.
Uygulama Önce undefined, sonra null göster
Bir pick değişkenini let ile tanımla ama değer atama (undefined olması için). Sonra pick'e null ata. Her iki durumda da console.log ile değerini ekrana yazdır.
Örnek çözümü göster
let pick;
console.log(pick);
pick = null;
console.log(pick);
Kendini test et
-
Aşağıdaki kodlardan hangisi konsola undefined yazar?
- let yas = 30; console.log(yas);
- let yas = null; console.log(yas);
- let yas = "30"; console.log(yas);
- let yas; console.log(yas);
Cevabı göster
let yas; console.log(yas); — Doğru. yas tanımlandı ama değer atanmadı; undefined olur.
-
pick değişkenine null ata
let pick = ____;Cevabı göster
let pick = null; -
Değeri anlamıyla eşleştir
- undefined
- Değer atanmamış
- null
- Bilinçli boş değer
- 42
- Bir sayı
- true
- Mantıksal doğru