JavaScript - Когда, если утверждение истинно, код не выполняется? - PullRequest
0 голосов
/ 06 декабря 2018

Таким образом, у меня есть 3 различных ввода для пользователя - День / Месяц / Год, и я пытаюсь выполнить оператор if, чтобы проверить, является ли месяц январь / февраль (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 голосов
/ 06 декабря 2018

Я только что попробовал это на 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

0 голосов
/ 06 декабря 2018

Сбой, потому что вы конвертируете год в строку, и после этого вы используете строковые операции с числом.Ошибка в вашей консоли должна четко указывать это.

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

, поэтому, если вы собираетесь выполнять над ней строковые действия, вам нужно преобразовать число обратно в строку.

Итаклибо вы делаете

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

, либо

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

В конце, ошибка «Uncaught TypeError: year.substring не является функцией» должна была появиться в консоли разработчика .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...