⊗jsPmLpDbg 167 of 505 menu

Këshilla për Debugging të Kodit duke përdorur Shembuj të Unazave në JavaScript

Tani do t'ju mësoj një metodologji për kërkimin e gabimeve në kod. Le të imagjinojmë se për ndonjë keqkuptim nuk keni ndjekur këshillat nga mësimi i mëparshëm dhe keni marrë një kod që nuk funksionon. Le të shohim se si të gjejmë gabimet dhe ta bëjmë atë të funksionojë.

Shumë fillestarë përdorin një metodë të gabuar kërkimi. Ata marr dhe shikojnë kodin, duke shpresuar se do të vërejnë gabimin. Dhe kështu për disa orë. Kjo nuk funksionon kështu.

Metoda e saktë është shfaqja e variablave në konsol dhe përcaktimi, nëse ajo që ndodhet aty është ajo që duhet, apo jo. Në këtë rast, duhet të filloni nga vendi i supozuar i problemit dhe të lëvizni lart përgjatë kodit. Le ta shohim në praktikë.

Le të supozojmë për shembull se keni pasur detyrën të kaloni nëpër një grup me numra dyshifrorë dhe të gjeni numrat, të cilëve shifra e parë është një më e madhe se e dyta. Le të, për thjeshtësi, në grup të ruhen numrat në formë vargjesh.

Le të supozojmë se ju e zgjidhët detyrën dhe morët kodin e mëposhtëm:

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); // nxjerr 0

Kodi, megjithatë, nxjerr 0. Në këtë rast, gjëja e parë që duhet bërë është të kontrollohet, duke parë se çfarë ndodh në variabël nëse ekzekutimi i kodit hyn në if. Le të shfaqim diçka në konsol brenda tij:

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('!'); // nuk nxjerr asgjë sum += elem; } } console.log(sum);

Meqenëse asgjë nuk u shfaq në konsol, kjo do të thotë që ekzekutimi i kodit thjesht nuk hyn në kusht. Le t'i shohim me sytë tanë, çfarë po krahasojmë:

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' dhe '11', '3' dhe '21' ... if (elem[0] === elem[1] + 1) { sum += elem; } } console.log(sum);

Si rezultat, bëhet menjëherë e dukshme se shtesa e dytë është dyshifrore. Është e lehtë të kuptohet se kjo ndodh për shkak që njësia shtohet si varg. Le të korrigjojmë problemin:

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

Pas korrigjimit, ne tashmë shohim se në variablin sum ka shfaqur diçka, edhe pse jo korrekte. Duket, megjithatë, që aty ndodhet ajo që na duhet, por ajo u mblodh në formë vargjesh, e jo numrash. Le të korrigjojmë problemin:

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; // korrigjojmë } } console.log(sum); // gjithçka funksionon

Korrigjoni gabimet e bëra në kodin vijues:

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);
Shqip
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ne përdorim cookie për funksionimin e sajtit, analizën dhe personalizimin. Përpunimi i të dhënave bëhet në përputhje me Politikën e Privatësisë.
prano të gjitha konfiguro refuzo