这应该是一个简单的订单计算器,但由于某种原因,它只是不起作用。下面的代码:这是什么导致它返回NaN?
var name, product, price, discount, quantity;
var name = prompt("What is your name?", "Enter name");
var sentence = "Hello " + name + " please look through our available products and services before placing your order.";
alert(sentence);
var product = prompt("Please enter the name of the product you are looking to purchase from the table.", "Enter product");
var quantity = 1*prompt("How many " + product + " would you like to purchase?", "Enter quantity");
var cost = price * quantity;
var orderdiscount = price * discount * quantity;
var totalcost = cost - orderdiscount;
a = confirm(+ name + ", you ordered " + quantity + " of " + product + ". Is this correct?");
if (a) {
total = cost - (price * discount * quantity);
if (product === "ice cream cake") {
price = 20;
discount = .15;
} else if (product === "ice cream cone") {
price = 3;
discount = .01;
} else if (product === "small ice cream sundae") {
price = 5;
discount = .05;
} else if (product === "large ice cream sundae") {
price = 6;
discount = .05;
} else if (prompt = ("Sorry, " + name + ". You entered an invalid product. Refresh the page to reload and place the order again.")) {
}
}
else
{
alert("Refresh the page to reload and place a new order");
}
document.write("Thank you for placing an order with us, " + name + ".");
document.write("</br>");
document.write("The cost of buying " + quantity + " of " + product + " is " + cost + ".");
document.write("</br>");
document.write("The discount for this purchase is " + orderdiscount + ".");
document.write("</br>");
document.write("With the discount, your total order cost is " + totalcost + ".");
当我加载页面,并输入了所有必要的信息,则返回:
“感谢您下订单和我们一起, 购买冰1的成本。奶油蛋糕是NaN。 这次购买的折扣是NaN。 有了折扣,你的订单总成本是NaN。“
应该有计算的数字来代替这些NaN。这段代码导致了这种情况发生了什么?
只是一个字:调试 – akonsu
你自己有值之前'price'做了很多的计算和'discount'。 –
'var price;'相当于'var price = NaN;',反过来说任何乘以NaN的数字都是NaN,因此'var cost = price * quantity'将始终为NaN。只需给'价格'和'折扣'一个数字值,即使它是0. – Mahn