


Рассчитать сумму со скидкой в JavaScript
В предоставленном вами коде есть несколько проблем, которые можно считать «неправильными» или неоптимальными:
1. Отсутствует оператор return: функция Calculate_total() ничего не возвращает, что означает, что по умолчанию она вернет неопределенное значение. Вам следует добавить оператор return в конце функции, чтобы указать, какое значение она возвращает.
2. Неиспользуемые переменные: переменной «скидка» присвоено значение, но она никогда не используется. Вам следует удалить неиспользуемый код, чтобы избежать путаницы и сделать код более читабельным.
3. Магические числа: код использует жестко запрограммированные значения, такие как «10» и «50», без каких-либо объяснений или документации. Было бы лучше использовать именованные константы или переменные, чтобы сделать код более читаемым и удобным в обслуживании.
4. Сложность: код содержит несколько вложенных операторов if, что может затруднить понимание и отладку. Вы можете упростить код, объединив некоторые условия в один оператор if или используя оператор switch.
5. Отсутствие обработки ошибок: код не обрабатывает ошибки, если пользователь вводит недопустимое значение процента скидки. Вам следует добавить обработку ошибок, чтобы гарантировать, что функция корректно обрабатывает неожиданные входные данные. Вот обновленная версия кода, которая решает эти проблемы:
```javascript
function Calculate_total(price, Discount) {
const DISCOUNT_PERCENTAGE = 0,1; // определяем константу для процента скидки
if (скидка === не определено || скидка < 0 || скидка > 100) {
throw new Error('Неверное значение скидки');
}
const total = цена * (1 - (DISCOUNT_PERCENTAGE * скидка));
общая сумма возврата;
}
```



