@shemshen

Факториал через массив. null==0? Преобразование строки к числу (NaN)?

Попытка вычисления факториала через массив.

Достаточно ли в первом if указать сравнение с нулем, чтобы учитывался и null при отмене ввода в prompt?

Если приведенное к числу значение prompt содержит строку без числа и должно получаться NaN, почему не срабатывает else if?

let q=+prompt("Введите целое положительное число");
if (q<=0){
alert("Вы ввели неправильные данные");
}
else if(q==NaN){
alert("Вы ввели не число");
}
else{
function fqt(){
let Arr=[];
if (q==1){
alert(q);
}
else{
for(i=1;i<q;i++){
Arr[i-1]=i;
};
let rez=q*Arr.reduce((fqt1,cur)=>fqt1*cur);
alert (rez);
};
};
fqt();
};
  • Вопрос задан
  • 50 просмотров
Решения вопроса 1
Aetae
@Aetae Куратор тега JavaScript
Тлен
NaN ничему не равен, даже себе. NaN === NaN // false
Проверка на NaN: Number.isNaN(). (Не путать с просто isNaN - который проверяет не на NaN, а на то, что переданное значения не приводится к числу.=\)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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