


JavaScript'te İndirim ile Toplamı Hesaplayın
Sağladığınız kodda "uygunsuz" veya idealin altında sayılabilecek birkaç sorun var:
1. Eksik "return" ifadesi: "calculate_total()" işlevi hiçbir şey döndürmez; bu, varsayılan olarak "tanımsız" değerini döndüreceği anlamına gelir. Hangi değeri döndürdüğünü belirtmek için fonksiyonun sonuna bir 'return' ifadesi eklemelisiniz.
2. Kullanılmayan değişkenler: "İndirim" değişkenine bir değer atanır ancak hiçbir zaman kullanılmaz. Karışıklığı önlemek ve kodu daha okunaklı hale getirmek için kullanılmayan kodu kaldırmalısınız.
3. Sihirli sayılar: Kod, herhangi bir açıklama veya belge olmaksızın "10" ve "50" gibi sabit kodlanmış değerleri kullanır. Kodu daha okunabilir ve bakımı kolay hale getirmek için adlandırılmış sabitleri veya değişkenleri kullanmak daha iyi olacaktır.
4. Karmaşıklık: Kodun birden fazla iç içe geçmiş "if" ifadesi vardır, bu da anlamayı ve hata ayıklamayı zorlaştırabilir. Koşullardan bazılarını tek bir "if" ifadesinde birleştirerek veya bir "switch" ifadesi kullanarak kodu basitleştirebilirsiniz.
5. Hata işleme eksikliği: Kullanıcı indirim yüzdesi için geçersiz bir değer girerse kod hataları işlemez. İşlevin beklenmeyen girişi düzgün bir şekilde işlemesini sağlamak için hata işlemeyi eklemelisiniz.
İşte kodun bu sorunları gideren güncellenmiş bir sürümü:
```javascript
function hesaplama_total(fiyat, indirim) {
const DISCOUNT_PERCENTAGE = 0,1; // indirim yüzdesi için bir sabit tanımlayın
if (indirim === tanımsız || indirim < 0 || indirim > 100) {
throw new Error('Geçersiz indirim değeri');
}
const toplam = fiyat * (1 - (DISCOUNT_PERCENTAGE * indirim));
getiri toplamı;
}
```



