function basketPrice(product, vat, delivery) {
var total = product + vat + delivery;
delivery = 7.5;
vat = 20/100 * product;
return total
}
basketPrice(150);
Так что для записи я начал изучать JavaScript примерно неделю назад, поэтому, пожалуйста, извините любые глупые ошибки или жаргон.
Выше я пытаюсь создать очень простой вывод. Я уверен, что это не то, как вы создаете корзину на веб-сайте электронной коммерции, но это просто пример, который я использую, чтобы помочь мне практиковать.
Я думал, что у меня это было до тех пор, пока мой результат не был NaN
(что я знаю - это не номер), но я понятия не имею, к чему это относится и почему.
Я ищу объяснение (как можно более простое) о том, где я ошибся. Любая помощь приветствуется.
Заранее спасибо.
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;
Вы вызываете функцию, которая ожидает 3 аргумента только с одним аргументом, поэтому вычисление суммы становится NaN (Not a Number).
function basketPrice(product, delivery) {
vat = (20/100 ) * product;
var total = product + vat + delivery;
return total;
}
basketPrice(150,7.5);