Unreachable code в ES Lint

const getRandomNumber = function(min, max, fraction) {
  if (min >= 0 && max >= 0 && max > min) {
    const randomNumber = Math.random() * (max - min) + min;
    const fractionalNumber = Number(randomNumber.toFixed(fraction));
    return fractionalNumber;
    if (fractionalNumber > max) {
      return max;
    }
  } else if (min >= max) {
    return ('Ошибка! Значение max меньше или равно значению min');
  } else if (min < 0 || max < 0) {
    return ('Ошибка! Указаны отрицательные значения');
  }
}

Всем привет! Делаю задачу по курсу JS. Нужно написать функцию, возвращающую число с плавающей запятой. Написала, но нужно было что-то сделать с проверкой на max, возвращаемого результата. Пыталась его добавить в else if с переменной fractionalNumber, но понятно, что вне блока ее не видно. Тогда попробовала вложенное условие, но теперь линтер говорит: Unreachable code. Что можно с этим сделать?)


Ответы (1 шт):

Автор решения: Neverm1ndo

Линтер выдает вам Unreachable code потому, что у вас return идет до условия, где выполняется проверка (fractionalNumber > max). Всё, что идет после return отбрасывается, т.к интерпретатор завершает выполение функции и возвращает результат.

Чтобы ваша функция работала так, как вы задумывали, она должна выглядеть так:

const getRandomNumber = (min, max, fraction) => {
  if (min >= 0 && max >= 0 && max > min) {
    const randomNumber = Math.random() * (max - min) + min;
    const fractionalNumber = Number(randomNumber.toFixed(fraction));
    if (fractionalNumber > max) { // если условие if выполняется
      return max; // возвращаем max
    } 
    // если условие не выполнилось 
    return fractionalNumber; // возвращаем fractionalNumber
  }
  if (min >= max) {
    return ('Ошибка! Значение max меньше или равно значению min');
  }
  if (min < 0 || max < 0) {
    return ('Ошибка! Указаны отрицательные значения');
  }
  return null;
};
  
 console.log(getRandomNumber(0, 3, 5)); // 2.61601
 console.log(getRandomNumber(3, 0, 2)); // Ошибка! Значение max меньше или равно значению min
 console.log(getRandomNumber(-3, 30, 3)); // Ошибка! Указаны отрицательные значения

→ Ссылка