Beklenmedik Hata ile Karşılaşma
JavaScript ile bir hesap makinesi yaparken karşılaştığım ilginç bir hata ve çözüm sürecim...
Hatalı Kod:
function hesapla(sayi1, sayi2, islem) {
switch(islem) {
case '+':
return sayi1 + sayi2;
case '-':
return sayi1 - sayi2;
case '*':
return sayi1 * sayi2;
case '/':
return sayi1 / sayi2;
}
}
let sonuc = hesapla("5", "3", "+"); // "53" çıktısı!
Sorun:
String birleştirme (concatenation) vs sayısal toplama problemi
Çözüm:
function hesapla(sayi1, sayi2, islem) {
// String değerleri sayıya çevirme
sayi1 = Number(sayi1);
sayi2 = Number(sayi2);
switch(islem) {
case '+':
return sayi1 + sayi2;
// ...diğer işlemler
}
}
Kullandığım Debug Araçları
-
Console.log Debugging
Değişkenlerin değerlerini ve tiplerini kontrol etme
console.log(typeof sayi1, sayi1); -
Breakpoints
Kod akışını adım adım takip etme
-
Chrome DevTools
Sources panelinde değişkenleri izleme
Öğrendiğim Dersler
- Veri tiplerinin önemi
- Sistematik hata ayıklama yaklaşımı
- Debugging araçlarının etkin kullanımı
- Hata mesajlarını doğru yorumlama
İpuçları
- Sorunu küçük parçalara böl
- Varsayımlarını test et
- Hata mesajlarını dikkatlice oku
- Debug araçlarını öğren