2017-07-27 9 views
1
function basketPrice(product, vat, delivery) { 
    var total = product + vat + delivery; 
    delivery = 7.5; 
    vat = 20/100 * product; 

    return total 
} 

basketPrice(150); 

私はJavaScriptを1週間ほど前から調べていましたので、間違いや間違いをお許しください。シンプルプラクティス機能の表示NaN

私は非常に単純な出力を生成しようとしています。私はこれがあなたがe-コマースのウェブサイトでバスケットを作り出す方法ではないと確信していますが、それは私が練習に役立つ例です。

私の結果がNaN(これは私が気にしているのはナンバーではありません)になるまで私はこれを持っていたと思っていましたが、

私は間違ったところで説明を(できるだけ単純に)探しています。どんな助けもありがとうございます。

ありがとうございます。

+0

インラインコードを投稿してください。私はコピーできない+画像を編集する:/ –

+0

完了、申し訳ありませんでした。 –

答えて

2
function basketPrice(product, vat, delivery){ 
    console.log(product,vat,delivery);//150,undefined,undefined 

    var total=product + vat + delivery;//150+undefined is not a number 

delivery=7.5;//now its to late to change sth 
vat = 0.2 * product; 

return total; 
} 

basketPrice(150); 

あなたは合計を計算した後に変数を設定します。だから、デフォルト値を使用および/またはあなたが合計を計算する前にそれらを設定することがありますが、実際には二つすべきパラメータをたくない場合は

function basketPrice(product, vat, delivery=7.5){ 

console.log(product,vat,delivery);//150,undefined,7.5 

vat = vat || 0.2 * product; 

var total=product + vat + delivery;// is a number 

return total; 
} 
basketPrice(150); 
basketPrice(1,2); 
basketPrice(1,2,3); 

、そのはるかにシンプル:

function basketPrice(product){ 
return product * 1.2 + 7.5; 
} 

またはショート:

basketPrice=p=>p*1.2+7.5; 
+0

何をやっているのですか?ヴァールとは何ですかバットとは何ですか – Lekens

+0

いくつか説明してください: - なぜパラメータvalを使用し、それがどのようにvat変数にリンクしていますか? - あなたはvat = vatを書いていますか? (私はそれを意味すると思いますか?) –

+0

@lekensああ、いいえ、なんとなくに:/ –

0

引数が1つだけの3つの引数を必要とする関数を呼び出しているので、totaの計算lはNaN(Not a Number)になります。

0
function basketPrice(product, delivery) { 
vat = (20/100) * product; 
var total = product + vat + delivery; 
return total; 
} 
basketPrice(150,7.5); 
+1

あなたはなぜvatをパラメータにしないのか簡単に説明できますか?あなたはそれを議論する必要はないのですか? また、唯一の価格は製品によって異なります。だから私は関数内の納入価格も宣言できますか?引数を使用する代わりに? –

+0

@ 11-はい、引数でない場合は、それを渡しません。 –

+0

@ジョナス痛みであることについて謝罪していますが、あなたはこの質問について大きな助けになりました。ジョナスwは、「合格」とはそれをパラメータにしないという意味ですか? ありがとうございます。 –

関連する問題