Kira Jumlah dengan Diskaun dalam JavaScript
Dalam kod yang anda berikan, terdapat beberapa isu yang boleh dianggap "tidak wajar" atau suboptimum:
1. Pernyataan `return` tiada: Fungsi `calculate_total()` tidak mengembalikan apa-apa, yang bermaksud ia akan mengembalikan `undefined` secara lalai. Anda harus menambah pernyataan `return` di penghujung fungsi untuk menentukan nilai yang dipulangkan.
2. Pembolehubah yang tidak digunakan: Pembolehubah `diskaun` diberikan nilai tetapi tidak pernah digunakan. Anda harus mengalih keluar kod yang tidak digunakan untuk mengelakkan kekeliruan dan menjadikan kod lebih mudah dibaca.
3. Nombor ajaib: Kod menggunakan nilai berkod keras seperti `10` dan `50` tanpa sebarang penjelasan atau dokumentasi. Adalah lebih baik untuk menggunakan pemalar atau pembolehubah yang dinamakan untuk menjadikan kod lebih mudah dibaca dan diselenggara.
4. Kerumitan: Kod ini mempunyai berbilang pernyataan `jika` bersarang, yang boleh menyukarkan untuk memahami dan nyahpepijat. Anda boleh memudahkan kod dengan menggabungkan beberapa syarat ke dalam satu pernyataan `jika` atau menggunakan pernyataan `tukar`.
5. Kekurangan pengendalian ralat: Kod tidak mengendalikan ralat jika pengguna memasukkan nilai yang tidak sah untuk peratusan diskaun. Anda harus menambah pengendalian ralat untuk memastikan bahawa fungsi mengendalikan input yang tidak dijangka dengan anggun.
Berikut ialah versi kemas kini kod yang menangani isu ini:
```javascript
function calculate_total(price, discount) {
const DISCOUNT_PERCENTAGE = 0.1; // tentukan pemalar untuk peratus diskaun
jika (diskaun === tidak ditentukan || diskaun < 0 || diskaun > 100) {
throw new Error('Nilai diskaun tidak sah');
}
jumlah const = harga * (1 - (DISCOUNT_PERCENTAGE * diskaun));
jumlah pulangan;
}
```



