プログラミング初学者のための実務につながる練習問題 JavaScript004 割引金額の算出 バグ対応

今日のタスク

前回のタスクで実装した処理 http://tamiblog.xyz/2020/05/18/post-571/ にてバグが報告されたので修正してください

報告内容

  • 割引がない時の割引金額がおかしい

調査したところ、割引がない場合は、第二引数の rate に undefined が来ることがあるようです。

前回実装したコードでは、undefined がきたときに NaNとなってしまっていました。

実務ではこのような細かい仕様を教えてもらえることはない方が多いです。

そのため、自ら考えてケースを洗い出して確認しておくことが重要になります。

実装例

それではバグに対応してみましょう。

以下のように undefined の場合の条件分岐を書いてみました。

const calcDiscountAmount = (basePrice, rate) => {
  if(rate === undefined) return 0
  if(rate > 100) return basePrice
  return basePrice * rate * 0.01
}

今回は仕様に明記されていないが、実装時には考慮すべきことがあることについて書きました。

今回のケースでは rate に undefined がくることがある、ということがわかりましたが、もしかしたら null などもくるケースもあるので考えてみると良いでしょう。

お疲れ様でした。