Emre

WFN Üye
Konular
1,714
Mesajlar
1,810
Çözüm
0
Ticaret Puanı
0
Üyelik
9 Ay 5 Gün
Konum
Samsun
Web Sitesi
Var
Alanı
WordPress Uzm.
1/1
Konu sahibi
Bir null veya undefined hatasını çözmek için önce hata veren satırda hangi değerin eksik olduğunu bulun. Ardından değerin neden gelmediğini düzeltin; eksik olması beklenen bir durumsa erişimden önce kontrol yapın veya uygun bir varsayılan değer kullanın. Böylece yalnızca hatayı susturmak yerine kodun beklenen verilerle çalışmasını sağlayabilirsiniz.

Eksik değeri ve kaynağını bulun​


Bu değerler tek başına hata değildir. Hata genellikle bunlardan birinin özelliğine erişmeye veya bunları işlev gibi çağırmaya çalıştığınızda oluşur. Örneğin kullanici.ad ifadesinde kullanici boşsa özellik okunamaz. null genellikle değerin bilerek boş bırakıldığını, undefined ise bir değerin atanmadığını veya aranan özelliğin bulunmadığını gösterir; gerçek neden uygulamanın veri akışına bağlıdır.

Tarayıcı geliştirici araçlarının konsolundaki ya da Node.js terminalindeki hata mesajından dosya ve satırı açın. Hatalı ifade kullanici.profil.ad ise önce kullanici, sonra varsa kullanici.profil değerini inceleyin. Geçici olarak console.log(kullanici) kullanabilir veya hata ayıklayıcıyla satırda durabilirsiniz. Çıktılara parola, erişim anahtarı veya kişisel veri yazdırmayın; tanılama kayıtlarını işiniz bitince kaldırın.

Değer undefined ise özellik adının yazımını, işleve gönderilen argümanı ve veri döndüren işlevin return ifadesini kontrol edin. API yanıtlarında beklenen nesne yolunu gerçek yanıtın yapısıyla karşılaştırın; eşzamansız işlem tamamlanmadan veriye erişilmediğinden emin olun. Değerin boş gelmesi, tek başına API'nin veya veritabanının hatalı olduğunu kanıtlamaz.

Zorunlu veriyle isteğe bağlı veriyi ayırın​


Aşağıdaki varsayımsal örneği tarayıcı konsolunda veya bir Node.js dosyasında çalıştırabilirsiniz. Kullanıcı zorunludur; profil adı ise gösterim için isteğe bağlı kabul edilir.

JavaScript:
function adiGoster(kullanici) {
  if (kullanici === null || kullanici === undefined) {
    throw new Error("Kullanıcı verisi eksik");
  }

  return kullanici.profil?.ad ?? "Ad belirtilmemiş";
}

console.log(adiGoster({ profil: { ad: "Deniz" } }));
console.log(adiGoster({}));

İlk çağrı Deniz, ikincisi Ad belirtilmemiş çıktısını verir. kullanici değeri null veya undefined ise işlev, eksik zorunlu veriyi açık bir hatayla bildirir. Böyle bir durumda çağıran kodun kullanıcıyı nereden alması gerektiğini düzeltin; varsayılan bir ad vererek eksik kullanıcıyı gizlemeyin.

?. isteğe bağlı zincirleme operatörüdür: profil null veya undefined ise ad erişimini durdurur ve undefined üretir. ?? ise yalnızca sol taraf null veya undefined olduğunda sağdaki varsayılanı kullanır. Profil nesnesi de isteğe bağlıysa bu yaklaşım uygundur; ancak profilin var olması zorunluysa veri kaynağını düzeltmek veya açık hata vermek daha doğrudur. Bu operatörler yanlış veri türünü doğrulamaz ve tanımlanmamış bir değişken adını düzeltmez.

Sayfa öğesi bulunamıyorsa​


document.querySelector("#gonder") eşleşen öğe bulamazsa null döndürür. Böyle bir sonuçta HTML'deki kimliğin seçiciyle aynı olduğunu ve kod çalıştığında öğenin oluşturulmuş olduğunu kontrol edin. Kodunuz HTML ayrıştırılmadan çalışıyorsa, ilgili harici betiği defer ile yüklemek bir çözümdür. Öğeyi uygulama daha sonra oluşturuyorsa işlemi öğenin gerçekten oluşturulduğu aşamaya taşıyın.

Düzeltmeden sonra sayfayı veya uygulamayı yeniden çalıştırın ve aynı işlemi tekrarlayın. Hatanın kaybolmasına ek olarak beklenen öğenin ya da verinin gerçekten kullanıldığını doğrulayın. Hata sürüyorsa konsoldaki güncel dosya ve satır bilgisiyle değerin nerede üretildiğini geriye doğru izleyin; yalnızca erişim satırına kontrol eklemek kaynağındaki eksikliği çözmeyebilir.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Foruma git ?

Bu konuyu görüntüleyen kullanıcılar

Bu konuyu şu anda görüntüleyen üye bulunmuyor.
Robotlar:
  • Anthropic