Keyinchalik murakkab kodni yozishdan oldin, koddagi nosozliklar haqida gapiraylik.
Barcha zamonaviy brauzerlar va boshqa koâpgina muhitlar âkoddagi nosozliklarni tuzatishâ ni qoâllab-quvvatlaydi â ishlab chiquvchi vositalaridagi maxsus interfeys, bu xatolarni topish va tuzatishni ancha osonlashtiradi.
Biz bu erda Chrome-dan foydalanamiz, chunki u bu jihatlarga koâra eng boy xususiyatlarga ega.
âManbalarâ oynasi («Sources»)
Chrome versiyangiz biroz boshqacha koârinishi mumkin, ammo u yerda nima borligi aniq boâlishi kerak.
- Chrome-da misol sahifasini oching.
- Dastruchi vositalarini oching F12 (Mac: Cmd+Opt+I).
manbalarpanelini tanlang.
Agar buni birinchi marta qilsangiz, nimani koârishingiz kerak:
Radio tugmasi fayllar roâyxati bilan yorliqni ochadi.
Keling, uni bosing va index.html ni tanlang va keyin daraxt koârinishida hello.js ni tanlang. Mana nimani koârsatishi kerak:
Bu yerda uchta zonani koârishimiz mumkin:
- Resurslar zonasi HTML, JavaScript, CSS va boshqa fayllarni, shu jumladan sahifaga biriktirilgan rasmlarni roâyxatlaydi. Chrome kengaytmalari bu yerda ham paydo boâlishi mumkin.
- Manba zonasi manba kodini koârsatadi.
- Axborot va boshqaruv zonasi koddagi nosozliklarni tuzatish uchun moâljallangan, biz uni tez orada oârganib chiqamiz.
Resurslar roâyxatini yashirish va manba kodi uchun ekran maydonini boâshatish uchun usha radio tugmasini bosing
Konsol
Agar biz Esc tugmachasini bossak, u holda konsol quyida ochiladi. Biz u erga buyruqlar yozib, Enter tugma yordamida bajarishimiz mumkin.
Ifoda bajarilgandan soâng uning natijasi quyida koârsatiladi.
Masalan, bu yerda 1+2 ning natijasi 3 ga teng, va hello("debugger") hech narsa qaytarmaydi, shuning uchun natijasi undefined:
Toâxtash nuqtalari
Keling, misol sahifasi kodida nimalar boâlayotganini koârib chiqaylik. Hello.js dagi 4 chi satrni bosing. Ha, kodda emas, balki 4 raqamni.
Tabriklaymiz! Siz toâxtash nuqtasini oârnatdingiz. Iltimos, shuningdek, 8 satr raqamini bosing.
Bu shunday koârinishi kerak (koâk bu bosish kerak boâlgan joy):
Toâxtash nuqtasi â bu koddagi nosozliklarni tuzatuvchi JavaScript-ni bajarilishini avtomatik ravishda toâxtatib turadigan kod nuqtasi.
Kod toâxtatib turilsa, biz mavjud oâzgaruvchanlarni tekshirib koârishimiz, konsolda buyruqlar bajarishimiz va h.k. Boshqacha qilib aytganda, koddagi nosozliklarni tuzatishimiz mumkin.
Biz har doim oâng oynada toâxtash nuqtalarining roâyxatini topishimiz mumkin. Bu turli xil fayllarda juda koâp toâxtash nuqtalari mavjud boâlganda foydalidir. Bu bizga quyidagilarga imkon beradi:
- Koddagi toâxtash nuqtasiga tezda oâtish (oâng oynada uni bosish orqali).
- Tekshirish nuqtasini olib tashlab, uni oâchirib qoâyish.
- Sichqonchaning oâng tugmachasini bosib, remove(oâchirish)-ni tanlab, toâxtash nuqtasini olib tashlash.
- â¦Va hokazo.
Satr raqamidagi oâng tugmachani bosish shartli toâxtash nuqtasini yaratishga imkon beradi. Bu faqat berilgan ifoda haqiqat boâlganda boshlanadi.
Bu faqat maâlum bir oâzgaruvchan qiymat yoki funktsiya parametrlari uchun toâxtashimiz kerak boâlganda qulay.
Koddagi nosozliklarni tuzatuvchi buyrugâi
Kodni quyidagi kabi koddagi nosozliklarni tuzatuvchi buyrugâi yordamida toâxtatib turishimiz mumkin:
function hello(name) {
let phrase = `Salom, ${name}!`;
debugger; // <-- koddagi nosozliklarni tuzatuvchi shu yerda to'xtaydi
say(phrase);
}
Bu biz kod muharririda boâlganimizda va brauzerga oâtishni xohlamasak va toâxtash nuqtasini oârnatish uchun ishlab chiquvchi vositalarida skriptni qidirishni istamasak, bu juda qulay.
Kodni toâxtatib turing va atrofga nazar tashlang
Bizning misolimizda sahifani yuklash paytida hello() chaqiriladi, shuning uchun koddagi nosozliklarni tuzatuvchi faollashtirishning eng oson usuli bu sahifani qayta yuklashdir. Keling, F5 (Windows, Linux) yoki Cmd+R (Mac) bosing.
Toâxtash nuqtasi oârnatilganda, ijro 4-satrda toâxtatiladi:
Iltimos, maâlumotlar ochiladigan sahifalarni oâng tomonga oching (oâqlar bilan belgilangan). Ular sizga joriy kod holatini tekshirishga imkon beradi:
-
Watchâ har qanday ifodalar uchun joriy qiymatlarni koârsatadi.Siz ortiqcha
+tugmachasini bosishingiz va ifodani kiritishingiz mumkin. Koddagi nosozliklarni tuzatuvchi har qanday vaqtda oâz qiymatini koârsatadi, uni bajarish jarayonida avtomatik ravishda qayta hisoblab chiqadi. -
Call Stackâ ulanish chaqiruvlar zanjirini koârsatadi.Hozirgi vaqtda koddagi nosozliklarni tuzatuvchi
hello()chaqiruvi ichidaindex.htmldagi skript bilan chaqirilgan (u erda hech qanday funktsiya yoâq, shuning uchun âanonimâ deb nomlanadi).Agar siz stek elementini bosgan boâlsangiz, koddagi nosozliklarni tuzatuvchi mos keladigan kodga oâtadi va uning barcha oâzgaruvchanlari ham tekshirishi mumkin.
-
Scopeâ joriy oâzgaruvchanlar.Localichki funktsiya oâzgaruvchanlarini koârsatadi. Shuningdek, ularning taâkidlangan qiymatlarini manba ustida koârishingiz mumkin.Globalglobal oâzgaruvchanlarga ega (har qanday funktsiyalardan tashqari).U erda biz hali oârganmagan
thiskalit soâz ham bor, lekin buni tez orada oârganamiz.
Ijro etilishini kuzatish
Endi skriptni ijro etilishini kuzatish vaqti keldi.
Oâng oynaning yuqori qismida buning uchun tugmalar mavjud. Keling, ularni oârganib chiqaylik.
- â ijro etishni davom eting, tezkor tugma F8.
-
Ijro etishni davom ettiradi. Agar qoâshimcha toâxtash nuqtalari boâlmasa, unda bajarish davom etadi va koddagi nosozliklarni tuzatuvchi boshqaruvni yoâqotadi.
Uni bosgandan keyin nimani koârishimiz mumkin:
Ijro etilish davom ettirilib,
say()ichidagi boshqa toâxtash nuqtasiga yetdi va u yerda toâxtab qoldi. Oâng tarafdagi âChaqiruvlar toâplamiâ ga qarang. Bu yana bitta chaqiruvga koâpaygan. Biz hozirsay()ni ichidamiz. - â qadam qoâyish (keyingi buyruqni bajaring), lekin funktsiyasiga kirmang, tezkor tugma F10.
-
Agar hozir uni bossak,
alertkoârsatiladi. Muhimi shundaki,alerthar qanday funktsiya boâlishi mumkin, ijro etish âundan sakrab oâtadiâ, ichki funktsiyalarni oâtkazib yuboradi. - â qadam qoâyish, tezkor tugma F11.
-
Oldingi bilan bir xil, ammo ichki qadam vazifalariga âqadam qoâyadiâ. Buni bosish barcha skript harakatlariga birma-bir qadam qoâyadi.
- â joriy funktsiyani oxirigacha bajarishni davom etish, tezkor tugma Shift+F11.
-
Ijro etilish joriy funktsiyalarning oxirgi satrda toâxtaydi. Biz tasodifan yordamida ichki chaqiruvni kiritganimizda bu juda qulay, ammo bu bizni qiziqtirmaydi va biz oxirigacha davom etishni imkoni boricha tezda xohlaymiz.
- â barcha toâxtash nuqtalarini yoqish/oâchirish.
-
Ushbu tugma ijro etishni harakatga keltirmaydi. Toâxtash nuqtalarni faqat yoqadi/oâchiradi.
- â xatolik yuz berganda avtomatik toâxtatishni yoqish/oâchirish.
-
Yoqilganda va dasturchi vositalari ochiq boâlsa, skript xatosi avtomatik ravishda bajarilishini toâxtatadi. Keyin nima oâzgarganligini koârish uchun oâzgaruvchanlarni tahlil qilishimiz mumkin. Shunday qilib, agar bizning skriptimiz xato bilan toâxtasa, biz koddagi nosozliklarni tuzatuvchi vositasini ochib, ushbu parametrni yoqib, sahifani qayta yuklashimiz mumkin, u qayerda toâxtashini va oâsha paytda qanday qiymatda ekanligini bilib olishimiz mumkin.
Kod satriga sichqonchaning oâng tugmasi bilan bosish kontekst menyusini âBu erda davom etingâ ochadi.
Bu biz bir necha qadam oldinga siljishni xohlaganimizda qulay, ammo biz toâxtash nuqtasini oârnatishga dangasa boâlsak.
Konsolga chiqarish
Konsolga biror narsa chiqarish uchun console.log funktsiyasi mavjud.
Masalan, bu konsolga 0 dan 4 gacha boâlgan qiymatlarni chiqaradi:
// ko'rish uchun konsolni oching
for (let i = 0; i < 5; i++) {
console.log("qiymat", i);
}
Muntazam foydalanuvchilar ushbu chiqishni koârmaydilar, u konsolda. Buni koârish uchun dasturchi vositalarining konsol yorligâini oching yoki boshqa tugmachada: tugmachani ochadigan Esc tugmachasini bosing.
Agar bizning kodimizga kiritish yetarli boâlsa, biz nima sodir boâlayotganini koddagi nosozliklarni tuzatuvchisiz koârishimiz mumkin.
Xulosa
Koârib turganimizdek, skriptni toâxtatib turishning uchta asosiy usuli mavjud:
- Toâxtash nuqtasi.
- âKoddagi nosozliklarni tuzatuvchiâ ifodalari.
- Xato (agar dasturchi vositalari ochiq boâlsa va tugmasi âyoqilganâ boâlsa)
Keyin biz oâzgaruvchanlarni koârib chiqamiz va bajarilish qayerda notoâgâri ketayotganini bilib olamiz.
Dasturchi vositalarda bu yerda koârib chiqilganidan koâra koâproq imkoniyatlar mavjud. Toâliq qoâllanma https://developers.google.com/web/tools/chrome-devtools.
Ushbu bobdan olingan maâlumotlar koddagi nosozliklarni tuzatishni boshlash uchun yetarli, ammo keyinroq, ayniqsa brauzerda juda koâp narsalarni qilsangiz, iltimos, u yerga oâting va dasturchi vositalarning yanada rivojlangan imkoniyatlarini koârib chiqing.
Eh, shuningdek, siz dasturchi vositalarning turli joylarini bosishingiz va nima koârinishini bilishingiz mumkin. Bu, ehtimol, dasturchi vositalarini oârganish uchun eng tez marshrut. Sichqonchaning oâng tugmachasini bosishni ham unutmang!
Izohlar
<code>yorlig'ini ishlating, bir nechta satrlar uchun - ularni<pre>yorlig'i bilan o'rab qo'ying, 10 satrdan ortiq bo'lsa - sandbox (plnkr, jsbin, codepenâ¦)