Laske kokonaissumma alennuksella JavaScriptissä
Antamassasi koodissa on muutamia ongelmia, joita voidaan pitää "sopimattomana" tai epäoptimaalisena:
1. Return-lause puuttuu: Funktio `calculate_total() ei palauta mitään, mikä tarkoittaa, että se palauttaa oletuksena `undefined'. Sinun tulisi lisätä `return`-lause funktion loppuun määrittääksesi, minkä arvon se palauttaa.
2. Käyttämättömät muuttujat: Muuttujalle "alennus" on määritetty arvo, mutta sitä ei koskaan käytetä. Sinun tulee poistaa käyttämätön koodi välttääksesi sekaannukset ja tehdäksesi koodista luettavamman.
3. Maagiset numerot: Koodi käyttää kovakoodattuja arvoja, kuten "10" ja "50" ilman selityksiä tai asiakirjoja. Olisi parempi käyttää nimettyjä vakioita tai muuttujia, jotta koodista tulee helpommin luettava ja ylläpidettävä.
4. Monimutkaisuus: Koodissa on useita sisäkkäisiä if-lauseita, mikä voi vaikeuttaa sen ymmärtämistä ja virheenkorjausta. Voit yksinkertaistaa koodia yhdistämällä joitakin ehtoja yhdeksi "if"-lauseeksi tai käyttämällä "switch"-lausetta.
5. Virheenkäsittelyn puute: Koodi ei käsittele virheitä, jos käyttäjä syöttää alennusprosentille virheellisen arvon. Sinun tulee lisätä virheiden käsittely varmistaaksesi, että funktio käsittelee odottamattomia syötteitä sulavasti.
Tässä on päivitetty versio koodista, joka korjaa nämä ongelmat:
```javascript
function laskea_total(hinta, alennus) {
const DISCOUNT_PERCENTAGE = 0,1; // määritä alennusprosentille vakio
if (alennus === määrittelemätön || alennus < 0 || alennus > 100) {
throw new Error('Virheellinen alennusarvo');
}
const yhteensä = hinta * (1 - (DISCOUNT_PERCENTAGE * alennus));
palautus yhteensä;
}
```



