


JavaScriptで割引を含む合計を計算する
あなたが提供したコードには、「不適切」または最適ではないと考えられる問題がいくつかあります:
1。 `return` ステートメントがありません: 関数 `calculate_total()` は何も返しません。これは、デフォルトで `unknown` を返すことを意味します。関数の最後に「return」ステートメントを追加して、関数が返す値を指定する必要があります。未使用の変数: 変数 `discount` には値が割り当てられていますが、使用されることはありません。混乱を避け、コードを読みやすくするために、未使用のコードを削除する必要があります。
3。マジック ナンバー: コードでは、説明やドキュメントなしで、「10」や「50」などのハードコーディングされた値が使用されています。コードを読みやすく保守しやすくするには、名前付き定数または変数を使用することをお勧めします。複雑さ: コードには複数の入れ子になった「if」ステートメントがあり、理解とデバッグが困難になる可能性があります。いくつかの条件を 1 つの `if` ステートメントに統合するか、`switch` ステートメントを使用することで、コードを簡素化できます。エラー処理の欠如: ユーザーが割引率に無効な値を入力した場合、コードはエラーを処理しません。関数が予期しない入力を適切に処理できるように、エラー処理を追加する必要があります。
これらの問題に対処するコードの更新バージョンを次に示します。 // 割引パーセンテージの定数を定義します
if (discount === 未定義 || 割引 < 0 || 割引 > 100) {
throw new Error('無効な割引値');
}
const total = 価格 * (1 - (DISCOUNT_PERCENTAGE * 割引));
合計を返す;
}
```



