JavaScript-当if语句为true时,代码不执行?

时间:2018-12-06 17:47:20

标签: javascript if-statement

因此我为用户提供了3种不同的输入-天/月/年,并且我试图运行if语句来检查月份是否为1月/ 2月(1或2),然后减去1从一年开始。我的if语句是:

if (month == 1 || month == 2) {
    if (month == 1) {
        year = Number(year) - 1;
    }
    else if (month == 2) {
        year = Number(year) - 1;
    }
}

这是我第一次尝试使用javascript,这非常令人沮丧! 如您所见,当我的月份= 3时,我的代码运行,但是一旦将其更改为1或2,它便不再执行... enter image description here

2 个答案:

答案 0 :(得分:4)

之所以失败,是因为您将年份转换为字符串,然后将数字转换为字符串。控制台中的错误应明确指出该错误。

year = Number(year) - 1
...
var century = year.substring(0,2)

因此,如果要对其执行字符串操作,则需要将数字转换回字符串。

所以你要么做

year = (Number(year) - 1).toString()

var century = year.toString().substring(0,2)

最后,开发人员console中应该出现错误“未捕获的TypeError:year.substring不是函数”。

答案 1 :(得分:-1)

我只是在JSFidddle上尝试过

$(document).ready(function(){

  var month=1;
  var year ='2018';


  if ((month == 1) || (month == 2)) {
        if (month == 1) {
            year = Number(year) - 1;
        }
        else if (month == 2) {
            year = Number(year) - 1;
        }   
    }
  alert(year);
});

JSFIDDLE LINK