【问题标题】:if else statement not working(nodejs,html)if else 语句不起作用(nodejs,html)
【发布时间】:2022-07-26 21:28:42
【问题描述】:

我有这段代码可以从 html 表单中获取年份,我试图为它设置一个参数,但 else 语句似乎永远不会执行。有什么线索吗?

exports.printyear = function(request, response) {
        let form = new formi.IncomingForm();
        form.parse(request, function(error, field, file) {
            let year = field.year;
            let currenturl = "";
            console.log("YEAR");
            console.log(year);
            if (year === 2007 | 2008 | 2009) {
                currenturl = "websiteurl" + year + ".xml";
            } else {
                currenturl = "websiteurl" + year + ".json";
            }
            console.log(currenturl);
            response.end();
        });

【问题讨论】:

  • year===2007|2008|2009 不会按您的预期工作。您需要针对每个值单独测试year
  • 年===2007||年===2008||年===2009
  • if (year===2007|2008|2009) 这不是if 语句的工作方式。你需要if(year == 2007 || year == 2008 || year == 2009){...}

标签: javascript html node.js


【解决方案1】:

在条件中使用or的正确方法是将它们分开。

改变

if (year===2007|2008|2009) {

if (year===2007 || year===2008 || year===2009) {

【讨论】:

    【解决方案2】:

    问题似乎是这一行:

    if (year===2007|2008|2009) {

    您需要像这样逐个比较每个值:

    if (year===2007||year===2008||year===2009)
    

    你现在在做什么是位运算符|

    (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_OR)

    【讨论】:

      【解决方案3】:

      除非我遗漏了什么,否则 if 语句中的语法是无效的 JS。请尝试以下操作:

      if (year === 2007 || year === 2008 || year === 2009) {
          currenturl = "websiteurl" + year + ".xml";
      } else {
          currenturl = "websiteurl" + year + ".json";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-13
        • 2015-05-05
        • 1970-01-01
        • 1970-01-01
        • 2022-01-16
        • 2014-09-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多