შესვლა

პროგრამირების საფუძვლები › დამწყები › შეცდომების პოვნა

console.log, როგორც ფანარი

მარტივი⏱ 7 წთ+20 XP👑 Pro#debugging#console.log#typeof

რას ისწავლი

  • როგორ გაიგო, რა ხდება პროგრამის შიგნით, console.log-ით
  • რა დაბეჭდო: მნიშვნელობა, წარწერა და ტიპი
  • როგორ შეავიწროვო ძებნის არე, სანამ შეცდომას არ იპოვი

ბნელ ოთახში

ლოგიკური შეცდომა ბნელ ოთახში დაკარგულ საგანს ჰგავს: იცი, რომ სადღაც არის, მაგრამ ვერ ხედავ. console.log ფანარია. მას პროგრამის სხვადასხვა ადგილას ჩასვამ და ნახავ, როგორი იყო ცვლადები იმ მომენტში. სადაც მნიშვნელობა პირველად გახდა არასწორი, შეცდომაც იქ არის.

ეს ხერხი იმდენად მარტივი და ეფექტურია, რომ გამოცდილი პროგრამისტებიც ყოველდღე იყენებენ.

წარწერა ყოველ ბეჭდვას

შიშველი რიცხვები ეკრანზე მალე აირევა: რომელი რას ნიშნავს? ყოველთვის დაურთე წარწერა:

JavaScript
let price = 12;
let count = 3;
console.log("price:", price, "count:", count);
console.log("ნამრავლი:", price * count);

ტიპის შემოწმება

ზოგჯერ მნიშვნელობა სწორად ჩანს, მაგრამ სხვა ტიპისაა. "10" და 10 ეკრანზე ერთნაირია. ასეთ დროს typeof დაგეხმარება:

JavaScript
let scores = ["80", "90", "100"];
let sum = 0;

for (const s of scores) {
  sum += s;
  console.log("s:", s, typeof s, "sum:", sum);
}

გაშვებისას ნახავ, რომ sum იქცევა "080"-ად, მერე "08090"-ად: ქულები ტექსტია და + მათ აერთებს. typeof s ამას მაშინვე გამხელს: string. შეცდომის ადგილი ნაპოვნია, გასწორება კი იცი: sum += Number(s).

ბეჭდვა ციკლის შიგნით

ციკლში ჩასმული console.log ყოველ იტერაციაზე იბეჭდება, ასე რომ ხედავ, როგორ იცვლება ცვლადები ნაბიჯ-ნაბიჯ. ციკლებში შეცდომის ძებნის საუკეთესო ხერხია. ოღონდ ფრთხილად: თუ ციკლი 10 000-ჯერ ბრუნავს, 10 000 ხაზს მიიღებ. ასეთ დროს დროებით შეამცირე მონაცემები, ან ბეჭდე მხოლოდ საეჭვო შემთხვევაში: if (i > 95) console.log(...).

არის შევიწროება

თუ არ იცი, სად არის შეცდომა, ჩასვი console.log პროგრამის შუაში. თუ იქ მნიშვნელობები სწორია, შეცდომა მეორე ნახევარშია. თუ არასწორია, პირველში. მერე იმ ნახევრის შუაში ჩასვი. ყოველი ნაბიჯი საძიებო არეს ორჯერ ამცირებს და რამდენიმე ნაბიჯში ზუსტ ხაზამდე მიხვალ.

ხაზის დროებით „გამოსართავად“ წაშლა არ გჭირდება: მის წინ // დაწერე და ის კომენტარად იქცევა. ასე ამოწმებ, რომელი ნაწილი იწვევს პრობლემას.

მოწესრიგება

როცა შეცდომა იპოვე და გაასწორე, დებაგინგისთვის ჩასმული console.log-ები წაშალე. ისინი პროგრამის შედეგს ანაგვიანებს და სხვისთვის, ან ერთ კვირაში შენთვის, გაუგებარი იქნება.

სცადე თავად

ეს ფუნქცია სიაში დადებით რიცხვებს უნდა ითვლიდეს და 3-ს უნდა აბრუნებდეს, მაგრამ 4-ს აბრუნებს. ჩასვი console.log ციკლის შიგნით, ნახე, რომელი რიცხვი ითვლება ზედმეტად, და გაასწორე.

JavaScript · სცადე თავად

ხშირი შეცდომები

  • ბეჭდვა წარწერის გარეშე. რამდენიმე უწარწერო რიცხვი ეკრანზე ერთმანეთში ირევა.
  • ბეჭდვა არასწორ ადგილას. return-ის შემდეგ ჩასმული console.log არასოდეს შესრულდება. ბეჭდვა იქ ჩასვი, სადაც კოდი ნამდვილად გადის.
  • დავიწყებული დებაგ-ბეჭდვები. გასწორების შემდეგ წაშალე ისინი.

სავარჯიშო

ეს კოდი სამი ქულის საშუალოს ითვლის და საშუალო: 90 უნდა დაბეჭდოს, მაგრამ უცნაურ რიცხვს ბეჭდავს. ჩასვი ციკლში console.log ტიპით, იპოვე მიზეზი და გაასწორე.

JavaScript · სცადე თავად
💡 მინიშნება

console.log(typeof s) აჩვენებს, რომ ქულები ტექსტია. დამატებამდე გადააქციე: Number(s).

✅ ამოხსნის ნახვა
JavaScript
let scores = ["80", "90", "100"];
let sum = 0;
for (const s of scores) {
  sum += Number(s);
}
console.log("საშუალო:", sum / scores.length);

მინი-ქვიზი

1რატომ უნდა დაურთო წარწერა ყოველ დებაგ-ბეჭდვას?

2sum გახდა "08090". რას დაბეჭდავს typeof ქულებზე?

3რა არის „არის შევიწროება“?

შეჯამება

  • console.log ფანარია: ხედავ ცვლადების მნიშვნელობას კონკრეტულ მომენტში.
  • ბეჭდე წარწერით, საჭიროებისას typeof-ით.
  • ციკლში ბეჭდვა ყოველ იტერაციას გაჩვენებს.
  • ჩასვი ბეჭდვა შუაში და შეავიწროვე არე. გასწორების შემდეგ დებაგ-ბეჭდვები წაშალე.
📝 ჩემი შენიშვნა