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.
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.
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.
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.
<!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
order.cupokurkenlabel(order)değerini günlüğe yaz. Günlük tea / undefined olur.{ drink: "tea" }geçir ve hatayı oku. Dönen metin tea / missing size olur.- Betikte
debuggerbırak. Araçlar kapalıyken sonraki günlük yine regular olur. - 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.logbetiği durdurmaz- Geliştirici araçları kapalıyken
debuggersayfayı durdurur diye beklemek - Sınıf sayfasından
tea / regular / mintokumak console.error("missing size")çağırıp fırlattığını sanmak
Bunu tut
console.logbir değer gösterir ve betik sürer- Bozuk okuma
order.cupolur; gerçek özelliksizeolur console.error("missing size")başarısızlığı işaretler ve fırlatmazdebuggeryalnızca geliştirici araçları açıkken duraklar- Sayfa satırı fixed / tea / regular okunur
🧠 Bilginizi Test Edin
Bilginizi Test Edin
Bu interaktif sınavla kendini test et ve konuyu ne kadar iyi anladığını gör
📝 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