⊗jsPmLpDbg 167 of 505 menu

Petua untuk Menyahpepijat Kod Menggunakan Contoh Gelung dalam JavaScript

Sekarang saya akan mengajar anda metodologi untuk mencari ralat dalam kod. Bayangkan bahawa atas sebab-sebab tertentu anda tidak mengikuti nasihat dari pelajaran sebelumnya dan mendapat kod yang tidak berfungsi. Mari kita lihat bagaimana untuk mencari ralat dan memastikan ia berfungsi.

Ramai pemula menggunakan metodologi carian yang tidak betul. Mereka hanya melihat kod, dengan harapan dapat melihat ralat. Dan begitu selama beberapa jam. Ia tidak berkesan.

Metodologi yang betul ialah dengan memaparkan pembolehubah ke konsol dan menentukan sama ada nilai di dalamnya adalah yang diperlukan atau tidak. Pada masa yang sama, anda perlu bermula dari lokasi masalah yang disyaki dan bergerak ke atas mengikut kod. Mari kita lihat secara praktikal.

Sebagai contoh, katakan anda diberi tugas untuk mengulangi array yang mengandungi nombor dua digit dan mencari nombor yang digit pertamanya satu lebih besar daripada yang kedua. Untuk memudahkan, andaikan array itu menyimpan nombor dalam bentuk rentetan.

Andaikan anda menyelesaikan masalah dan mendapat kod berikut:

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

Walau bagaimanapun, kod itu mengeluarkan 0. Dalam kes ini, perkara pertama yang perlu dilakukan ialah menyemak sama ada pelaksanaan kod masuk ke dalam if. Mari kita paparkan sesuatu ke konsol di dalamnya:

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('!'); // tidak memaparkan apa-apa sum += elem; } } console.log(sum);

Oleh kerana tiada apa-apa muncul di konsol, ini bermakna pelaksanaan kod secara ringkasnya tidak memasuki kondisi. Mari lihat dengan mata sendiri apa yang kita bandingkan:

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

Hasilnya, serta-merta dapat dilihat bahawa sebutan kedua adalah dua digit. Mudah difahami bahawa ini berlaku kerana unit ditambah sebagai rentetan. Mari betulkan masalahnya:

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

Selepas pembetulan, kita sudah dapat melihat bahawa something muncul dalam pembolehubah sum, walaupun tidak tepat. Walau bagaimanapun, jelas bahawa ia mengandungi apa yang kita perlukan, tetapi ia ditambah sebagai rentetan, bukan nombor. Mari betulkan masalahnya:

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; // membetulkan } } console.log(sum); // semuanya berfungsi

Betulkan ralat yang dilakukan dalam kod berikut:

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);
Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak