⊗jsPmLpDbg 167 of 505 menu

JavaScript Döngüleri Örneğinde Kod Hata Ayıklama İpuçları

Şimdi size kodda hata arama metodolojisini öğreteceğim. Bir yanlış anlama sonucu önceki dersteki tavsiyelere uymadığınızı ve çalışmayan bir kodla karşılaştığınızı varsayalım. Hataları nasıl bulacağımızı ve onu çalıştıracağımızı görelim.

Birçok yeni başlayan yanlış arama metodolojisi kullanır. Koda bakarlar ve hatayı fark edeceklerini umarlar. Ve bu birkaç saat böyle devam eder. Bu şekilde olmaz.

Doğru metodoloji, değişkenleri konsola yazdırmak ve orada ihtiyaç duyulan şeyin olup olmadığını belirlemektir. Bu durumda, sorunun olduğu tahmin edilen yerden başlamalı ve kodda yukarı doğru ilerlemelisiniz. Pratikte görelim.

Örnek olarak, önünüzde iki basamaklı sayılardan oluşan bir diziyi dolaşmak ve ilk rakamı ikincisinden bir fazla olan sayıları bulma görevi olduğunu varsayalım. Basitlik için, dizide sayılar string olarak saklansın.

Görevi çözdüğünüzü ve aşağıdaki kodu elde ettiğinizi varsayalı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); // 0 veriyor

Ancak kod 0 veriyor. Bu durumda ilk olarak, kodun if'in içine girip girmediğini kontrol etmek gerekir. İçine konsola bir şeyler yazdıralım:

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('!'); // hiçbir şey yazdırmıyor sum += elem; } } console.log(sum);

Konsolda hiçbir şey görünmediğine göre, bu, kodun koşulun içine hiç girmediği anlamına gelir. Kendi gözlerimizle neyi karşılaştırdığımıza bakalım:

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

Sonuç olarak, ikinci terimin iki basamaklı olduğu hemen görünür olur. Bunun, birin bir string olarak eklendiği için olduğunu anlamak kolaydır. Sorunu düzeltelim:

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

Düzeltmeden sonra, sum değişkeninde artık bir şeyler olduğunu görüyoruz, her ne kadar hatalı olsa da. Ancak, orada ihtiyacımız olan şeyin olduğu, ancak sayılar yerine stringler olarak toplandığı görülüyor. Sorunu düzeltelim:

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üzeltiyoruz } } console.log(sum); // her şey çalışıyor

Aşağıdaki kodda yapılan hataları düzeltin:

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);
Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet