それはあなたがここで達成しようとしているものを少しは不明だが、次のようにあなたのコードに問題があります:
(function()`{`
// --------^^^ unexpected template string
if (50<=fieldname2<=99 && fieldname3=3) return fieldname2*4/100;
// ------^^^ this is not valid ----^^^ should be === not =
if (50<=fieldname2<=99 && fieldname3=6) return fieldname2*6/100;
if (50<=fieldname2<=99 && fieldname3=12) return fieldname2*8/100;
`}`)();
// immediately invoked function - but why?
// what happens if "50<=fieldname2<=99" is not satisfied?
アドバイスのビット - を参照してテスト可能なエンティティとして最初の関数を記述しますあなたが望む結果を得ることさえあれば。表現力豊かな議論を使って、自分が何をしているのかを推論することができます。あなたの機能でカバーされていないケースを考えてください(下記のコメントを参照)。そのような場合、あなたはundefined
を返すことが望ましく、それは望ましいことです。
function calculateInterest (amount, months) {
if (50 <= amount && amount <= 99) {
if (months === 3) return amount*4/100;
if (months === 6) return amount*6/100;
if (months === 12) return amount*8/100;
// what should we return if months does not satisfy one of the above?
}
// what should we return if amount does not satisfy the above?
}
fieldname2
とfieldname3
はあなたのコード内に存在する変数と仮定すると、あなたは今、関数にcalculateInterest(fieldname2, fieldname3)
構文エラー... '50を呼び出すことができます<= fieldname2 <= 99'は有効な比較ではなく、 'fieldname3 = 3'は_assignment_であり、等価比較ではありません。 'if(50 <= fieldname2 && fieldname2 <= 99 && fieldname3 === 3)' –