⊗jsPmLpDbg 167 of 505 menu

JavaScript-də kod dövrlərinin debug edilmesi üsulları

İndi sizə kodda səhvlərin axtarılması metodikasını öyrədəcəm. Təsəvvür edin ki, siz nədənsə əvvəlki dərsdəki məsləhətlərə əməl etməmisiniz və işləməyən kod almısınız. Gəlin səhvləri necə tapmağı və onu işlək vəziyyətə gətirməyi görək.

Bir çox yeni başlayanlar səhv axtarış metodikasından istifadə edir. Onlar götürüb koda baxırlar, səhvi görəcəkləri ümidi ilə. Və beləcə bir neçə saat. Bu, işləmir.

Düzgün metodika dəyişənləri konsola çıxarmaq və orada lazımi olanın olub-olmadığını müəyyən etməkdir. Bu zaman problemin təxmini yerindən başlamaq və koda yuxarıya doğru hərəkət etmək lazımdır. Gəlin praktikada baxaq.

Nümunə üçün fərz edək ki, qarşınızda iki rəqəmli ədədlərdən ibarət massivi gəzmək və birinci rəqəmi ikincidən bir vahid böyük olan ədədləri tapmaq vəzifəsi dururdu. Sadəlik üçün fərz edək ki, massivdə ədədlər sətir şəklində saxlanılır.

Tutaq ki, siz problemi həll etmisiniz və aşağıdakı kodu almısınız:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (elem[0] === elem[1] + 1) { sum += elem; } } console.log(sum); // 0 verir

Lakin kod 0 verir. Bu halda ilk növbədə yoxlamaq lazımdır ki, kodun icrası if şərtinə daxil olurmu? Gəlin onun içinə konsola nəsə çap edək:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (elem[0] === elem[1] + 1) { console.log('!'); // heç nə çap etmir sum += elem; } } console.log(sum);

Konsolda heç nə peyda olmadığı üçün bu o deməkdir ki, kodun icrası şərtə sadəcə daxil olmur. Gəlin öz gözlərimizlə nəyi müqayisə etdiyimizə baxaq:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { console.log(elem[0], elem[1] + 1); // '2' və '11', '3' və '21' ... if (elem[0] === elem[1] + 1) { sum += elem; } } console.log(sum);

Nəticədə dərhal görünür ki, ikinci toplanan iki rəqəmlidir. Asanlıqla başa düşmək olar ki, bu, vahidin sətir kimi əlavə olunması səbəbindəndir. Problemi düzəldək:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (+elem[0] === +elem[1] + 1) { // düzəldirik sum += elem; } } console.log(sum); // '021324354'

Düzəlişdən sonra artıq görürük ki, sum dəyişənində nəsə peyda olub, baxmayaraq ki, düzgün deyil. Lakin görünür ki, orada bizə lazım olan var, amma o ədəd kimi deyil, sətir kimi toplanıb. Problemi düzəldək:

let arr = ['21', '32', '34', '43', '45', '54', '55']; let sum = 0; for (let elem of arr) { if (+elem[0] === +elem[1] + 1) { sum += +elem; // düzəldirik } } console.log(sum); // hər şey işləyir

Aşağıdakı kodda edilmiş səhvləri düzəldin:

let obj = {a: 10, b: 20, c: 30, d: 40, e: 50}; let sum = 0; for (let elem in obj) { if (elem[0] === '1' && elem[0] === '2') { sum += +elem; } } console.log(sum);
Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et