Yükleniyor...

Hata ayıklama

Hata ayıklama, programın neden yanlış davrandığını bulmaktır. Bu sayfada bir sipariş var, { drink: "tea", size: "regular" }, ve yanlış bir özellik adı. bug order.cup okur. Bozuk günlük tea / undefined olur. Düzeltmeden sonra sayfa satırı fixed / tea / regular olur.

Bu sınıf dersi değil

Önceki sayfa Drink ve SpecialDrink kurdu. Satırı tea / regular / mint idi. Orada bilerek bozulan bir şey yoktu.
Burada veri baştan doğrudur. bug order.cup okur, nesnede ise size vardır, cup yoktur. Gerçek özellik size olur.

İşlevi yeniden yazmadan önce değeri oku

console.log bir değer basar ve betiği durdurmaz. console.warn bir uyarıyı işaretler. console.error bir başarısızlığı işaretler. Hiçbiri veriyi onarmaz. Yalnızca yanlış değeri görünür kılar.

Özellik adı yanlış

label, order.drink ile order.cup değerini birleştirir. drink vardır, bu yüzden ilk sözcük tea olur. cup yoktur, bu yüzden ikinci sözcük undefined olur.

Bozuk etiketi günlüğe yaz

javascript
const order = { drink: "tea", size: "regular" };
function label(order) {
return order.drink + " / " + order.cup;
}
console.log(label(order));

Günlük tea / undefined olur. Nesnede hâlâ size vardır. İşlev onu hiç okumadı.

Başarısızlığı işaretle

size yokken console.error("missing size") çağır. Bu parça, hata yolunun çalışması için boyutsuz bir sipariş geçirir. console.error("missing size") fırlatmaz.

Eksik size bildir

javascript
function label(order) {
if (!order.size) {
console.error("missing size");
return order.drink + " / missing size";
}
return order.drink + " / " + order.size;
}
console.log(label({ drink: "tea" }));

Konsol missing size hatasını gösterir ve dönen metin tea / missing size olur. size içermeyen boş sipariş tea / missing size döndürür. Boş dizge de eksik sayılır, çünkü !"" doğrudur.

Bilerek duraklat

debugger deyimi, tarayıcıdan yalnızca geliştirici araçları açıkken durmasını ister. Araçlar kapalıysa deyim hiçbir şey yapmaz ve sonraki satır çalışır.

Araçlar açıkken duraklat

javascript
const order = { drink: "tea", size: "regular" };
debugger;
console.log(order.size);

Araçlar açıkken yürütme debugger üzerinde durur ve order incelenebilir. Araçlar kapalıyken sonraki günlük regular olur. debugger bir hata değildir ve order değiştirmez.

Çağrı listesi

label, format çağırır ve format fırlatırsa konsol iki işlev adını da listeler. Listenin en üstünden başla: başarısız olan satır odur. Sonra çağırana dön. Bu sayfanın bug değeri bir şey fırlatmaz. undefined bir değerdir, bu yüzden sen günlüğe yazana kadar liste sessiz kalır.

Yalnızca bir adı değiştir

order.cup yerine order.size yaz. undefined susturmak için nesneye cup özelliği ekleme. Nesne zaten doğruydu. Gerçek özellik size olur.

Düzeltmeden sonraki satır

Sayfa size okur, onu denetler ve etiketten önce kısa bir durum yazar.

Sayfa demosu — düzeltilmiş etiket

html
<!DOCTYPE html>
<html>
<body>
<p id="line">…</p>
<script>
const order = { drink: "tea", size: "regular" };
function label(order) {
if (!order.size) {
console.error("missing size");
return order.drink + " / missing size";
}
return order.drink + " / " + order.size;
}
document.getElementById("line").textContent = "fixed / " + label(order);
</script>
</body>
</html>

Satır fixed / tea / regular okunur. fixed sözcüğü yalnızca bir durumdur. İçecek ve boyut nesneden gelir. tea / undefined bozuk işlevin çıktısıydı.

Tezgâhta

  1. order.cup okurken label(order) değerini günlüğe yaz. Günlük tea / undefined olur.
  2. { drink: "tea" } geçir ve hatayı oku. Dönen metin tea / missing size olur.
  3. Betikte debugger bırak. Araçlar kapalıyken sonraki günlük yine regular olur.
  4. Sayfa satırını oku: fixed / tea / regular.

Sık yanlışlar

  • Günlük undefined dedi diye nesneyi değiştirmek
  • console.log çağrısını duraklatma sanmak; console.log betiği durdurmaz
  • Geliştirici araçları kapalıyken debugger sayfayı durdurur diye beklemek
  • Sınıf sayfasından tea / regular / mint okumak
  • console.error("missing size") çağırıp fırlattığını sanmak

Bunu tut

  • console.log bir değer gösterir ve betik sürer
  • Bozuk okuma order.cup olur; gerçek özellik size olur
  • console.error("missing size") başarısızlığı işaretler ve fırlatmaz
  • debugger yalnızca geliştirici araçları açıkken duraklar
  • Sayfa satırı fixed / tea / regular okunur

🧠 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

❓
7
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