@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();
};
  • Вопрос задан
  • 38 просмотров
Пригласить эксперта
Ответы на вопрос 1
Aetae
@Aetae
Тлен
NaN ничему не равен, даже себе. NaN === NaN // false
Проверка на NaN: Number.isNaN(). (Не путать с просто isNaN - который проверяет не на NaN, а на то, что переданное значения не приводится к числу.=\)
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
28 июл. 2021, в 00:00
2000 руб./за проект
27 июл. 2021, в 22:00
25000 руб./за проект
27 июл. 2021, в 21:59
1500 руб./за проект