JavaScript Debugging (Xatolarni topish)
Boshlang'ichlar uchun debugging
Ko'pgina boshlang'ichlar debugging qila olmaganliklari uchun tashlab ketadilar.
Bu sahifa sizga kod nima uchun ishlamayotganini aniqlashni o'rgatadi.
Debugging — kodingizda xatolarni (bug) topish va tuzatish jarayoni. Xatolar oddiy narsa. Mahorat — ularni tezda topishni o'rganish.
Kod nima uchun ishlamaydi?
Dasturlash kodi sintaksis xatalari yoki mantiqiy xatolarni o'z ichiga olishi mumkin. Bu xatolarning ko'pchiligi tashxis qo'yish qiyin. Kod muvaffaqiyatsiz bo'lganda, boshlang'ichlar ko'pincha nima noto'g'ri ekanligini taxmin qiladilar. Debugging buning teskarisi: siz faktlarni tekshirasiz.
Yaxshi debugging odati: O'qi → Takrorla → Qisqartir → Tuzat
- Xatoni o'qing
- Muammoni takrorlang
- Kichik misolga qisqartiring
- Keyin tuzating
JavaScript debuggerlari
Debugging oson emas, lekin barcha zamonaviy brauzerlar o'rnatilgan JavaScript debuggeriga ega.
Debugger bilan siz to'xtash nuqtalarini (breakpoints) o'rnatishingiz va kod bajarilayotganda o'zgaruvchilarni tekshirishingiz mumkin.
Bilasizmi?
Debugging — bu kompyuter dasturlarida xatolarni (bug) sinash, topish va kamaytirish jarayoni. Birinchi ma'lum bo'lgan kompyuter xatosi haqiqiy hasharot (bug) edi — elektronikaga yopishib qolgan!
1-qadam: Konsolga qarang
Brauzer konsoli JavaScript-dan xatolar va xabarlarni ko'rsatadi. Kodingiz "hech narsa qilmasa", konsol ko'pincha sababini aytadi.
Brauzeringizda debuggingni F12 tugmasi bilan yoqing va debugger menyusida Console ni tanlang.
Muhim
Agar faqat bitta narsa qilsangiz: biror narsa muvaffaqiyatsiz bo'lganda har doim konsolni tekshiring.
2-qadam: console.log() dan foydalaning
JavaScript-da console.log() konsolga qiymatlarni chop etadi. Bu kodingiz nima qilayotganini ko'rishga yordam beradi.
console.log("Hello!");Nima noto'g'ri ekanligini topish uchun o'zgaruvchilarni chop eting:
let price = 50;
let quantity = 3;
let total = price * quantity;
console.log("Jami:", total);Maslahat
Shubhalanayotgan qator oldidan va keyin qiymatni loglang. Bu ishlar qayerda noto'g'ri ketayotganini aniqlashga yordam beradi.
3-qadam: Taxminlaringizni tasdiqlang
Ko'pgina xatolar siz qiymatni biror narsa deb taxmin qilganingiz, lekin u aslida boshqa bo'lganligi sababli yuzaga keladi. Qiymatni tekshiring. Turni tekshiring.
let x = 5;
let y = "5";
console.log(x + y); // 55 (satr!)
console.log(x + Number(y)); // 10 (raqam)Xato xabarlarini o'qish
ReferenceError
Ma'nosi: Bu nom mavjud emas. Ko'pincha xato yozilgan yoki o'zgaruvchi e'lon qilinmagan.
console.log(myValue);
// ReferenceError: myValue is not definedTypeError
Ma'nosi: Siz qiymatni imkonsiz usulda ishlatmoqchi bo'ldingiz. Ko'pincha undefined yoki null.
let x;
console.log(x.length);
// TypeError: Cannot read properties of undefinedEslatma
Konsol oynasida xato odatda qator raqamini o'z ichiga oladi. Uni konsolda bosib aniq qatorga o'ting.
Oddiy debugging nazorat ro'yxati
- Konsolda xatolarni tekshiring
- Xato xabarini diqqat bilan o'qing
- Qiymatlarni
console.log()bilan loglang - Muammoni kichik misolga qisqartiring
- Bir vaqtda bitta narsani tuzating
Keng tarqalgan boshlang'ich xatolar
Xato: == yoki === o'rniga = ishlatish
let x = 10;
if (x = 5) {
console.log("Bu ishlaydi");
}Tuzatish: Taqqoslashdan foydalaning:
let x = 10;
if (x === 5) {
console.log("Bu faqat x 5 bo'lganda ishlaydi");
}Ogohlantirish
Agar if bayonoti g'alati ishlayotgan bo'lsa, tasodifan = ishlatmaganingizni tekshiring.
Asosiy brauzerlarning debugging vositalari
Brauzeringizda debuggingni F12 bilan yoqing va debugger menyusida Console ni tanlang.
Chrome
- Brauzerni oching
- Menyudan "More tools" ni tanlang
- Toolsdan "Developer tools" ni tanlang
- Console ni tanlang
Firefox
- Brauzerni oching
- Menyudan "Web Developer" ni tanlang
- "Web Console" ni tanlang
Edge
- Brauzerni oching
- Menyudan "Developer Tools" ni tanlang
- "Console" ni tanlang
Opera
- Brauzerni oching
- Menyudan "Developer" ni tanlang
- "Developer tools" ni tanlang
- "Console" ni tanlang
Safari
- Safari → Preferences → Advanced ga o'ting
- "Enable Show Develop menu in menu bar" ni belgilang
- Paydo bo'lgan "Develop" menyusidan "Show Error Console" ni tanlang
