Различные значения переменной в зависимости от ее расположения - PullRequest
0 голосов
/ 03 августа 2020

Я понимаю, что переменные не привязаны к блоку, а относятся только к функциям, поэтому мне было интересно, почему значение переменной reversed изменяется, помещаю ли я его внутри while l oop или вне while l oop.

Когда reversed помещается внутри while l oop

var isPalindrome = function(x) {
  if (x < 0) {
    return false;
  }
  let temp = x;
 
  while (temp > 0) {
    var reversed = 0;
    reversed = (reversed * 10) + (temp % 10);
    temp = Math.floor(temp/10);
  }
  console.log(reversed) // reversed = 1
  return reversed === x;
};

console.log(isPalindrome(121)) // false

Когда reversed помещается вне while l oop

var isPalindrome = function(x) {
  if (x < 0) {
    return false;
  }
  let temp = x;
  var reversed = 0;
  while (temp > 0) {
    reversed = (reversed * 10) + (temp % 10);
    temp = Math.floor(temp/10);
  }
  console.log(reversed) // reversed = 121
  return reversed === x;
};

console.log(isPalindrome(121)) // true

1 Ответ

1 голос
/ 03 августа 2020

Это не проблема определения объема. Это потому, что вы сбрасываете переменную reversed внутри l oop при каждом запуске, и это влияет на возвращаемое значение вашей функции.

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