JavaScript DevTools bilan xatolarni topish
Kod ishlamayotganda taxmin qilish o’rniga ko’rish kerak. Brauzerdagi DevTools buni beradi: kod qayerda to’xtaganini, o’zgaruvchilarda nima turganini va so’rovlar qanday ketganini.
Ochish
| Tizim | Tugma |
|---|---|
| Windows / Linux | F12 yoki Ctrl + Shift + I |
| macOS | Cmd + Option + I |
| Har qanday | O’ng tugma → “Inspect” / “Ko’rib chiqish” |
Asosiy bo’limlar: Console (xabarlar), Sources (kod va to’xtash nuqtalari), Elements (DOM), Network (so’rovlar).
console — log’dan boshqasi ham bor
Haqiqiy DevTools’da warn sariq, error qizil rangda va chaqiruvlar
zanjiri bilan chiqadi — xato qayerdan kelganini ko’rsatadi.
Jadval ko’rinishi
console.table obyektlar massivini chinakam jadval qilib chizadi — DevTools
konsolida ustunlar bo’yicha saralash ham mumkin.
Guruhlash
Uzun ro’yxatlarni yig’ib qo’yish uchun qulay.
Vaqt o’lchash
time va timeEnd bir xil nom bilan chaqiriladi — orasidagi vaqtni beradi.
Bu tezlikni o’lchashning eng oson usuli.
Shartli tekshiruv
assert shart yolg’on bo’lgandagina xabar chiqaradi — barcha holatni
loglashdan ko’ra toza.
Sanash
Funksiya necha marta va qaysi qiymat bilan chaqirilganini bilish uchun.
debugger — kodni to’xtatish
Eng kuchli vosita console.log emas, to’xtash nuqtasi:
function hisobla(a, b) {
const yigindi = a + b;
debugger; // DevTools ochiq bo'lsa — shu yerda to'xtaydi
return yigindi * 2;
}
hisobla(3, 4);
Kod shu qatorda to’xtaydi va siz:
- barcha o’zgaruvchilar qiymatini ko’rasiz (Scope paneli);
- chaqiruvlar zanjirini ko’rasiz (Call Stack);
- qadamma-qadam yurasiz (
F10— keyingi qator,F11— funksiya ichiga); - konsolda joriy kontekst bilan ifoda yozib sinaysiz.
Sources panelida qator raqamini bosib ham to’xtash nuqtasi qo’yiladi — kodga tegmasdan.
Xato xabarini o’qish
Xato xabarini o’qishda uch narsa muhim: turi (TypeError,
ReferenceError), xabari va stack — qaysi funksiyalar orqali shu
yerga kelgani. Xatolar darsida turlari sanab o’tilgan.
Keng uchraydigan xatolar
| Xabar | Sabab |
|---|---|
x is not defined |
O’zgaruvchi e’lon qilinmagan yoki nomi xato |
Cannot read properties of null |
Element topilmadi (querySelector null qaytardi) |
x is not a function |
Nomi xato yoki obyektda bunday metod yo’q |
Unexpected token |
Sintaksis xatosi — qavs yoki tirnoq yopilmagan |
Cannot access before initialization |
let/const e’londan oldin ishlatilgan |
Ikkinchisi eng ko’p uchraydi:
querySelector topa olmasa null qaytaradi — natijani ishlatishdan oldin
tekshirish kerak.
Network — so’rovlarni ko’rish
fetch bilan ishlaganda Network paneli ko’rsatadi:
- so’rov manzili va usuli (GET/POST);
- status kodi (200, 404, 500);
- yuborilgan va qaytgan ma’lumot (Payload / Response);
- qancha vaqt ketgani.
So’rov ishlamayotganda birinchi shu yerga qaraladi: so’rov umuman ketdimi, qanday status keldi va javob tanasida nima bor.
Amaliy mashq
F12bilan DevTools’ni oching va Console’ga o’ting;- obyektlar massivini
console.tablebilan chiqaring; console.time/timeEndbilan sikl vaqtini o’lchang;- funksiyaga
debuggerqo’yib, Scope panelida o’zgaruvchilarni ko’ring; - mavjud bo’lmagan elementga murojaat qilib, xato xabarini o’qing;
- Network panelida
fetchso’rovini kuzating.
Qisqacha xulosa
- DevTools
F12bilan ochiladi; asosiy panellar — Console, Sources, Network. consoledatable,group,time,count,assertham bor.debuggeryoki Sources’dagi to’xtash nuqtasi — eng kuchli usul.- Xatoda uch narsa muhim: turi, xabari va chaqiruvlar zanjiri.
Cannot read properties of null— element topilmagan, tekshirish kerak.- Network paneli so’rov status va javobini ko’rsatadi.
Keyingi darsda kod sifati va nomlash — o’qiladigan kod yozish qoidalari.