常に値を割り当てるわけではありませんがe
、計算に使用しています。正しくインデントされたコードは次のとおりです。
function calculateMB(num,charge,fixed)
{
if(num>50)
var e = num - 50;
var new_e = e * charge;
new_var = new_e / 20;
return (new_var + fixed);
}
num
が<=
50の場合e
、値を取得することはありません(したがって、デフォルトのままになりますundefined
)。したがって、e * charge
は、残りの計算全体NaN
にNaN
伝播します。
あなたはおそらく欲しい:
function calculateMB(num,charge,fixed)
{
var e, new_e, new_var;
e = (num > 50) ? num - 50 : num;
new_e = e * charge;
new_var = new_e / 20;
return new_var + fixed;
}
そこでの変更:
私はすべてのvar
ステートメントを一番上に置きます。それが実際にそこにあるからです。
私はnew_var
、あなたがまったく宣言していなかった、暗黙のグローバルの恐怖の餌食になると宣言しました。
e
常に値が割り当てられるようにしました。いつになりたかったと思いますがe
、必要に応じて調整してください。num
num <= 50
コードを一貫してインデントしました。一貫性のあるコードインデントのようなことを行うと、バグを回避し、他の人があなたのコードを理解するのに役立ちます。強くお勧めします。