คำนวณผลรวมพร้อมส่วนลดใน JavaScript
ในโค้ดที่คุณระบุ มีปัญหาบางประการที่อาจถือว่า "ไม่เหมาะสม" หรือไม่เหมาะสม:
1 คำสั่ง `return` ที่ขาดหายไป: ฟังก์ชัน `calculate_total()` จะไม่ส่งคืนสิ่งใด ซึ่งหมายความว่าฟังก์ชัน `calculate_total()` จะคืนค่าเป็นค่าเริ่มต้น คุณควรเพิ่มคำสั่ง `return` ที่ส่วนท้ายของฟังก์ชันเพื่อระบุค่าที่ส่งคืน
2 ตัวแปรที่ไม่ได้ใช้: ตัวแปร `ส่วนลด` ได้รับการกำหนดค่าแต่ไม่เคยใช้ คุณควรลบโค้ดที่ไม่ได้ใช้ออกเพื่อหลีกเลี่ยงความสับสนและทำให้โค้ดอ่านง่ายขึ้น3. ตัวเลขมหัศจรรย์: โค้ดใช้ค่าฮาร์ดโค้ด เช่น "10" และ "50" โดยไม่มีคำอธิบายหรือเอกสารใดๆ จะดีกว่าถ้าใช้ค่าคงที่หรือตัวแปรที่มีชื่อเพื่อทำให้โค้ดสามารถอ่านและบำรุงรักษาได้มากขึ้น
4 ความซับซ้อน: โค้ดมีคำสั่ง `if` ซ้อนกันหลายคำสั่ง ซึ่งอาจทำให้เข้าใจและแก้ไขข้อบกพร่องได้ยาก คุณสามารถทำให้โค้ดง่ายขึ้นได้โดยการรวมเงื่อนไขบางอย่างไว้ในคำสั่ง `if` เดียว หรือใช้คำสั่ง `switch`
5 ขาดการจัดการข้อผิดพลาด: รหัสไม่จัดการข้อผิดพลาดหากผู้ใช้ป้อนค่าที่ไม่ถูกต้องสำหรับเปอร์เซ็นต์ส่วนลด คุณควรเพิ่มการจัดการข้อผิดพลาดเพื่อให้แน่ใจว่าฟังก์ชันจัดการกับอินพุตที่ไม่คาดคิดได้อย่างงดงาม
นี่คือเวอร์ชันอัปเดตของโค้ดที่จัดการปัญหาเหล่านี้:
```javascript
function คำนวณ_total(ราคา, ส่วนลด) {
const DISCOUNT_PERCENTAGE = 0.1; // กำหนดค่าคงที่สำหรับเปอร์เซ็นต์ส่วนลด
if (ส่วนลด === unknown || ส่วนลด < 0 || ส่วนลด > 100) {
Throw new Error('Invalid Discount Value');
}
const all = price * (1 - (DISCOUNT_PERCENTAGE * ส่วนลด));
ส่งคืนผลรวม;
}
```



