Számítsa ki a teljes összeget a kedvezménnyel JavaScriptben
Az Ön által megadott kódban van néhány probléma, amely „nem megfelelőnek” vagy szuboptimálisnak tekinthető:
1. Hiányzó `return` utasítás: A `calculate_total()` függvény nem ad vissza semmit, ami azt jelenti, hogy alapértelmezés szerint az `undefined` értéket adja vissza. Adjon hozzá egy "return" utasítást a függvény végéhez, hogy meghatározza, milyen értéket ad vissza.
2. Fel nem használt változók: A "discount" változóhoz hozzá van rendelve egy érték, de soha nem használják fel. A félreértések elkerülése és a kód olvashatóbbá tétele érdekében távolítsa el a fel nem használt kódot.
3. Varázslatos számok: A kód olyan keménykódolt értékeket használ, mint a „10” és „50”, magyarázat vagy dokumentáció nélkül. Jobb lenne elnevezett konstansokat vagy változókat használni, hogy olvashatóbbá és karbantarthatóbbá tegyük a kódot.
4. Bonyolultság: A kód több beágyazott „if” utasítást tartalmaz, ami megnehezítheti a megértést és a hibakeresést. Leegyszerűsítheti a kódot, ha egyes feltételeket egyetlen „if” utasításba von össze, vagy egy „switch” utasítást használ.
5. Hibakezelés hiánya: A kód nem kezeli a hibákat, ha a felhasználó érvénytelen értéket ad meg a kedvezmény százalékához. Hozzá kell adnia a hibakezelést annak biztosítására, hogy a függvény kecsesen kezelje a váratlan bevitelt.
Íme a kód frissített verziója, amely ezeket a problémákat orvosolja:
```javascript
function kalkul_total(ár, kedvezmény) {
const DISCOUNT_PERCENTAGE = 0,1; // definiáljon egy állandót a kedvezmény százalékához
if (discount === undefined || kedvezmény < 0 || kedvezmény > 100) {
throw new Error('Érvénytelen diszkontérték');
}
const total = ár * (1 - (KEDVEZMÉNY_PERCENTAGE * kedvezmény));
visszatérítés összesen;
}
```



