Anya_Koya
@Anya_Koya
Ничтожество, отягощённое борьбой с прокрастинацией

В чём ошибочна математическая операция внутри вывода результата функции в JavaScript'е?

Не могу понять, в чём фактическая разница между
return ["ID DATA", parseInt(oldIdData[0] + oldIdData[1], 2) + 1];

и
let resultingIdData = ["ID DATA", parseInt(oldIdData[0] + oldIdData[1], 2) + 1];
return resultingIdData;

Почему первый вариант выдаёт ошибку, а второй - нет? На мой взгляд второй ("правильный") вариант - только нерациональное увеличение кода и введение ещё одной совершенно лишней переменной. Тем более, что если убрать прибавление единицы, то ошибка исчезает:
return ["ID DATA", parseInt(oldIdData[0] + oldIdData[1], 2)];

Ошибка обозначается при редактировании кода в IDE "JetBrains PhpStorm 2020.1" и описывается как "Indexed expression can be null or undefined", при самом выполнении кода в браузерах "Mozilla Firefox" и "Google Chrome" ошибка не возникает, результат выполнения корректен. Также и сама IDE говорит чушь, так как логика кода такова, что oldIdData[0] и oldIdData[1] при выполнении приведённых строк кода точно содержат ненулевые корректные строки, результат parseInt(oldIdData[0] + oldIdData[1], 2) точно даст число.
  • Вопрос задан
  • 261 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы