在JavaScript中使用if / else语句时出错了

时间:2015-11-22 22:20:36

标签: javascript

我正在学习javascript的基础知识,并且我已经创建了一些由于某种原因无法运行的JavaScript。我可能做了一些愚蠢的事,但我无法弄清楚我做错了什么。我认为它与变量" bkosten"有关。但我无法弄清楚是什么。有人能指出我正确的方向吗?

<!DOCTYPE html>
<html lang="nl">

<head>
  <title>JavaScript Lab 01</title>


</head>

<body>
  <script type="text/javascript">
    var klantnaam = prompt("Voer je eigen naam in");
    var aantal = parseInt(prompt("Aantal boeken te bestellen?"));
    var woonplaats = prompt("Voer je woonplaats in");
    var minpost = "1000AA";
    var maxpost = "2000BB";
    var postcode = prompt("Voer je postcode in");
    var result1 = postcode.localeCompare(minpost);
    var result2 = postcode.localeCompare(maxpost);
    var titel = "JavaScripts";
    var prijs = 29.90;
    var bedrag = prijs * aantal;
    var btw = 0.06 * bedrag;
    var bezorgkosten = 15;
    var totaalprijsbezorgkosten = bedrag + btw + bezorgkosten;
    var totaalprijsgratisbezorgd = bedrag + btw;

    if (result1 === 1 && result2 === -1) {
      bkosten = false;
    } else {
      bkosten = true;
    }

     if (bkosten === false && woonplaats = "Amsterdam") {
      document.writeln("Bedankt voor je bestelling " + klantnaam + "!<br />");
      document.writeln("Woonplaats " + woonplaats) + "<br />";
      document.writeln("Boektitel is: " + titel + "<br />");
      document.writeln("Aantal te bestellen: " + aantal + "<br />");
      document.writeln("Prijs per boek is " + prijs.toFixed(2) + " (excl. btw <br />");
      document.writeln("De prijs komt neer op " + bedrag.toFixed(2) + " euro                 <br />");
      document.writeln("De BTW bedraagt" + btw.toFixed(2) + " euro <br />");
      document.writeln("Je hebt geen bezorgkosten! <br />");
      document.writeln("De totaalprijs komt neer op " + totaalprijsgratisbezorgd + " euro<br />");
    } else {
      document.writeln("Bedankt voor je bestelling " + klantnaam + "!<br />");
      document.writeln("Woonplaats " + woonplaats) + "<br />";
      document.writeln("Boektitel is: " + titel + "<br />");
      document.writeln("Aantal te bestellen: " + aantal + "<br />");
      document.writeln("Prijs per boek is " + prijs.toFixed(2) + " (excl. btw) <br />");
      document.writeln("De prijs komt neer op " + bedrag.toFixed(2) + " euro <br />");
      document.writeln("De BTW bedraagt" + btw.toFixed(2) + " euro <br />");
      document.writenl("De bezorgkosten bedragen" + bezorkosten + "<br />");
      document.writeln("De totaalprijs komt neer op " + totaalprijsbezorgkosten + " euro<br />");
    }
  </script>
</body>

</html>

我可能搞砸了一些试图将其粘贴到这个问题中的代码,但是当我不使用bkosten变量时它会起作用。

1 个答案:

答案 0 :(得分:3)

最有可能是错字:

woonplaats = "Amsterdam"应为woonplaats === "Amsterdam"

以下内容比它需要的更详细,bkosten的范围很可能是错误的。但是,因为我不知道bkosten意味着什么,我无法判断它是否应该是全球性的......

if (result1 === 1 && result2 === -1) {
  bkosten = false;
}
else {
  bkosten = true;
}

所以正确的代码看起来应该是

var bkosten = (result === 1 && result2 === -1);
if (!bkosten && woonplaats === "Amsterdam") {
   // logic goes here
}